jjzjj

OutputDebugString

全部标签

c++ - 从已编译的应用程序创建 Windows 服务

我想使用MicrosoftVisualStudio2015从我编译的C/C++代码创建一个服务。我编译了我的代码并使用来自应用程序可执行文件的sc.exe创建了一个服务。我的代码由一个无限循环组成,它在时间间隔内将一个简单的字符串写入一个静态文件。创建服务并重启后,服务似乎自动停止了。直接运行时可执行文件工作正常。代码如下:#include"stdafx.h"#include#include#includeusingnamespacestd;voidwrite_txt_file(stringfile_name,stringinput){/*writeastringtoaspecific

带有换行符的 C++ OutputDebugStringW

我想在OutputDebugStringW上附加一个新行。OutputDebugStringW(Item.pItem);pItem是一个LPCWSTR,而不是一个wstring,所以我不能通过说+"/n"直接添加新行。有人可以帮忙吗? 最佳答案 只需在对OutputDebugStringW的单独调用中输出换行符:OutputDebugStringW(Item.pItem);OutputDebugStringW(L"\n");如果出于某种原因你只想对OutputDebugStringW进行一次调用,请先构建一个字符串:std::wst

windows - 为什么 AddVectoredExceptionHandler 会使我的 DLL 崩溃?

我尝试将矢量异常处理添加到我的Win32DLL,但是对AddVectoredExceptionHandler的调用永远不会回来。我只是得到无用的.exehasstoppedworking对话。但是,如果我使用VisualC++调试器调试dll,那么它确实可以工作,并且在适当的时间调用处理函数,一切都很好。明确地说,我在DLL初始化时添加处理程序,就像这样OutputDebugString("beforeadding\n");AddVectoredExceptionHandler(1,VectoredExcepHandler);OutputDebugString("afteradding

c# - 如何从服务接收 OutputDebugString?

我正在trycatch所有OutputDebugString使用以下代码的消息(包括来自服务的消息)。在我迁移到Windows7之前它运行良好。问题在于,由于WindowsVista服务在低级session#0中运行,有人说it'simpossiblecatch他们和一些它是。你怎么看?是否可以通过增加一些权限来修改以下代码,以便能够接收OutputDebugString来自Session#0的消息?换一种说法;是否可以在session#0中与session#1共享DBWIN_BUFFER?我会说这应该是可能的,因为例如DebugView可以做到这一点,而且我看不到任何服务助手可以将这

c++ - Visual Studio - 如何将调试信息输出到调试窗口?

OutputDebugString方法似乎相当繁琐,而且似乎仅限于字符串而不是多态。如果我想输出一些整数或其他变量类型,我该怎么办?希望像std::cout这样的函数存在! 最佳答案 我很确定您可以编写一个通过OutputDebugString输出的streambuf实现。这不完全是直截了当的,但有可能。当然可以使用这样的东西:std::stringstreamss;ss如果您的项目中启用了“UNICODE”,您可能需要使用MultiByteToWideChar将c_str()转换为宽字符串。

c++ - 我的 Visual C++ 程序可以监听它自己的调试输出吗?

我的程序使用了大量第三方库,有时会将有用的错误消息放入调试器输出(使用OutputDebugString())。我的程序能否以某种方式以编程方式访问该输出,以便它可以解析它并以某种更方便的方式向我报告它? 最佳答案 没有API可以让您访问通过OutputDebugString输出的字符串。获取数据有两种方式:坏主意:实现OutputDebugStringprotocol的客户端.更好的主意:HookOutputDebugStringA函数。OutputDebugString协议(protocol)仅支持单个监听器,因此第一种方法与应

c# - 可以在 Visual Studio 的输出窗口中查看 OutputDebugString 的输出吗?

我正在使用C#和VisualStudio2010。当我使用OutputDebugString写入调试信息时,它是否应该显示在输出窗口中?我可以在DebugView中看到OutputDebugString的输出,但我想我会在VisualStudio的输出窗口中看到它。我看过在菜单工具下?选项?调试?常规,并且输出不会被重定向到立即窗口。我也看过菜单工具*?选项?调试?输出窗口和所有常规输出设置都设置为“开”。最后,我使用“输出”窗口中的下拉列表指定应显示调试消息。如果我更改菜单工具*?选项?调试?常规将输出重定向到即时窗口,OutputDebugString消息不会出现在即时窗口中。这是

c# - 可以在 Visual Studio 的输出窗口中查看 OutputDebugString 的输出吗?

我正在使用C#和VisualStudio2010。当我使用OutputDebugString写入调试信息时,它是否应该显示在输出窗口中?我可以在DebugView中看到OutputDebugString的输出,但我想我会在VisualStudio的输出窗口中看到它。我看过在菜单工具下?选项?调试?常规,并且输出不会被重定向到立即窗口。我也看过菜单工具*?选项?调试?输出窗口和所有常规输出设置都设置为“开”。最后,我使用“输出”窗口中的下拉列表指定应显示调试消息。如果我更改菜单工具*?选项?调试?常规将输出重定向到即时窗口,OutputDebugString消息不会出现在即时窗口中。这是

windows - 是否有 OutputDebugString 的 Unicode 替代品?

OutputDebugString()是原生ASCII,这意味着它在调用ASCII版本OutputDebugStringA()之前将输入的Unicode字符串转换为本地字符串。是否有支持Unicode的OutputDebugString()替代方案? 最佳答案 OutputDebugStringW确实在内部调用了OutputDebugStringA,因此无法在系统代码页中表示的Unicode字符将被替换为?。奇怪的是,OUTPUT_DEBUG_STRING_INFO调试器从操作系统接收到的用于打印消息的结构似乎确实支持让调试器知道字

c++ - 控制台中的 OutputDebugString()

我正在使用使用函数OutputDebugString()的第三方库,并且在阅读MSDN文档时,它似乎表明这是为了打印到调试器。但这对我来说很不方便,如果没有连接调试器,有没有办法读取这个输出?如果它是我的LIB,我希望每当用户通过--debug或类似方式时输出转到stdout/stderr,但因为不是我正在寻找其他方式来传递它无需连接调试器即可将信息发送到控制台(或文件)。 最佳答案 OutputDebugStringA生成异常DBG_PRINTEXCEPTION_C(win10中的W版本-DBG_PRINTEXCEPTION_WI
12