Visual Studio .NET 2002QAVisual C++ 7.1Visual C++ 8.0Visual Studio 6Visual C++ 7.0Windows 2003Windows 2000Visual C++ 6.0Windows XP中级开发Visual StudioWindowsC++
在 ActiveX 控件中从控制台窗口进行 Printf() 调试






3.26/5 (12投票s)
2005年8月24日
1分钟阅读

46432
在 ActiveX 控件内部创建控制台窗口。
引言
好的,事情是这样的…… 在开发用于浏览器包含的 ActiveX 控件的过程中,我需要观察大量数据。 使用标准的断点调试变得非常繁琐,更糟糕的是,该控件在远程机器上出现故障。
为了能够轻松地查看数据,我决定看看是否可以从控件内部创建一个控制台窗口。 经过网络搜索,我没有找到任何相关信息,所以我决定尝试一个快速测试。
结果,操作起来非常简单。 要从控件内部进行 printf()
调试,您只需要修改您的 OnCreate()
方法如下
LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { // TODO : Add Code for message handler. // Call DefWindowProc if necessary. /* create a seperate console window for printf (print, println and debug) output */ AllocConsole(); freopen ("CONOUT$", "w", stdout ); return 0; }
您还需要包含适当的头文件 <stdio.h>,现在您应该能够在代码中的任何位置使用 printf()
。
当然还有其他跟踪输出的方法…… 但这保证在没有安装任何工具的机器上可用和可见。
注意:虽然我还没有这样做,但也可以重新映射 stdin
并从控制台窗口获取输入,如果您需要实现一个简单的调试控制台。
又一个添加到工具箱中的工具…… 随意使用。