我有一个应用程序,它使用C#作为前端,C ++ DLL作为逻辑部分。我想在C ++ DLL的控制台屏幕上打印错误消息,即使存在C#GUI也是如此。请让我知道如何做到这一点。
谢谢, 勒凯什。
答案 0 :(得分:14)
您可以在C ++ DLL中使用OutputDebugString,然后执行DebugView以获取消息
答案 1 :(得分:9)
您可以使用AllocConsole()创建控制台窗口,然后写入标准输出。
如果您使用的是C或C ++标准I / O函数(而不是直接的win32调用),则需要采取一些额外的步骤来将新控制台与C / C ++标准库的标准输出理念相关联。 http://www.halcyon.com/~ast/dload/guicon.htm使用完整的代码解释了您必须做的事情和原因。
答案 2 :(得分:4)
除非从控制台启动应用程序,否则stdin,stdout和stderr将不存在并且任何尝试使用例如printf()
将失败。打开您自己的控制台或使用调试机制,例如之前建议的OutputDebugString()
。
答案 3 :(得分:0)
如果处理DLL和服务EXE(如COM / DCOM或任何其他ATL项目),您还可以使用此行代码以MessageBox
窗口的形式打印出诊断消息,作为打印消息的替代方法控制台:
MessageBox(NULL, L"Com Object Function Called", L"COMServer", MB_OK | MB_SETFOREGROUND);
我使用过它的示例包括_tWinmain
函数,以及用于跟踪实例的构造函数和析构函数。