在VC2012制作OCX控件时,为了调试方便,打开控制台的方法:
1. 建控制台句柄变量:
HANDLE m_hCMD;
2. 创建控制台:
AllocConsole();
m_hCMD = GetStdHandle(STD_OUTPUT_HANDLE);
3. 向控制台写入:
CString str;
str.Format(_T("Console Test");
DWORD num = 0;
WriteConsole(m_hCMD, str, str.GetLength(), &num, NULL);
4. 关闭控制台:
FreeConsole();
在Ctrl析构函数中,加入此语句,关闭控制台窗体。
否则,在浏览器中关闭此页面时,控制台窗体还在;只有在整个浏览器关闭时,控制台窗体才会消失。
这说明OCX中的控制台窗体是浏览器级别的,因此需要在OCX析构时关控制台。