C++ 如何打印调试C++;Win32 DLL?
我目前正在从事一个依赖于将DLL注入另一个进程的项目,因此(AFAICT)标准调试工具无法工作。我一直在使用的是C++ 如何打印调试C++;Win32 DLL?,c++,c,windows,debugging,winapi,C++,C,Windows,Debugging,Winapi,我目前正在从事一个依赖于将DLL注入另一个进程的项目,因此(AFAICT)标准调试工具无法工作。我一直在使用的是#define DEBUG(_msg)MessageBoxA(nullptr,_msg,“DEBUG”,MB_OK) 问题是,它会阻止当前线程,直到我单击消息框,消息框会在某些地方将我的代码搞砸和/或冻结我将DLL注入的进程 那么,我应该如何使用Win32 API打印调试消息,以便在别处查看,并立即继续运行代码?在Visual Studio中,可以调试正在运行的进程 在“调试”菜单中,
#define DEBUG(_msg)MessageBoxA(nullptr,_msg,“DEBUG”,MB_OK)
问题是,它会阻止当前线程,直到我单击消息框,消息框会在某些地方将我的代码搞砸和/或冻结我将DLL注入的进程
那么,我应该如何使用Win32 API打印调试消息,以便在别处查看,并立即继续运行代码?在Visual Studio中,可以调试正在运行的进程 在“调试”菜单中,查找“附加到进程”
然后可以像正常情况一样触发断点 将它记录到一个文件中,并跟踪该文件……我是个傻瓜,标准调试工具实际上可以很好地工作,只需使用注入的进程作为调试目标,而不是DLL。不要打印到常规控制台,而是打印到调试器的跟踪窗口(在最低级别使用OutputDebugString,尽管msvc对此有帮助的包装)。使用
OutputDebugString()
,并在目标进程未在调试器内运行时查看其消息