从C ++ DLL将消息打印到控制台

时间:2010-03-01 06:02:32

标签: c++

我有一个应用程序,它使用C#作为前端,C ++ DLL作为逻辑部分。我想在C ++ DLL的控制台屏幕上打印错误消息,即使存在C#GUI也是如此。请让我知道如何做到这一点。

谢谢, 勒凯什。

4 个答案:

答案 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函数,以及用于跟踪实例的构造函数和析构函数。

相关问题