/*此文是我将网上的一些文章,自已遇到的问题进行整理,有些是翻译,所有只供学习讨论,如有版权还属于原作者——作者:黄森堂*/
#26 在ATL发行版本中出错信息:“unresolved external symbol _main”答:这是VC6的一个BUG,由于VC6在ATL使用_ATL_MIN_CRT_宏,该宏会使CRT启动代码无效,去掉该宏就可以了,如下做法:Project->Setting->C/C++ 的Category中选择Preprocessor的Preprocessor definitions:中去掉_ATL_MIN_CRT_。
#27 如何在ATL中取得windowsless窗口的HWND?答:windowsless 就是没有窗口。你的ATL控件没有窗口, m_hWnd不是NULL能是什么。 至于Ondraw得到的 hdc 实际是父窗口的hdc。huhu 你注意看 M$ 的form 系列控件(就是IE页面中的那些textbox checkbox ....), 都是windwosless的。
if (m_bWndLess)
{
HDC hDC;
HWND hWnd;
// Get the HDC from the client
m_spInPlaceSite->GetDC(NULL, OLEDC_NODRAW, &hDC);
// Get the HWND from the HDC
hWnd = WindowFromDC(hDC);
m_spInPlaceSite->ReleaseDC(hDC);
}
注意:不要乱动那个hWnd因为这个东西不是你的。
答:stdafx.h的最前面加入#define _WIN32_DCOM
答:这是VC5为支持Connection Point的做法,VC6已整合到Wizard里面。具体位置:选择编译你的项目,然后直接在你的类中击鼠标右键选择Implement Connection Point,后面的界面与VC5的一模一样。
本文地址:http://com.8s8s.com/it/it3346.htm