正文

ASSERT(afxCurrentInstanceHandle!=NULL)2010-08-11 14:58:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/manbuyuduan/51620.html

分享到:

afxwin1.inl assert at line:23

好久没更新了,奉献一篇技术贴。
最近使用ATL 7.0 写windows服务,因为以前的程序是用MFC编写的,遇到一些麻烦,解决问题花了些时间.
拿出来共享一下.
其实就是一个经常出现的错误:
afxwin1.inl assert at line:23
现象:打开afxwin1.inl 发现assert(afxCurrentInstanceHandle != NULL)出错
我心想MFC这个垃圾不会要我手动赋吧,所以研究了很久,看看自己初始化是不是缺少什么不骤,还是哪里修改了这个值. 后来发现,手动赋才是王道,因为如果是MFC程序,这个赋值在CWinAPP的里就作了,不过因为嫌太麻烦就懒得找了,呵呵.
另外一个问题,ATL程序如何获得这个句柄呢,其实每个ATL程序都会有一个全局成员 _AtlBaserModule保存这重要的句柄.
 
ok
solution:
在ATL程序初始化阶段手动赋值
afxCurrentInstanceHandle = _AtlBaseModule.GetModuleInstance();
afxCurrentResourceHandle = _AtlBaseModule.GetResourceInstance(); (这个也要赋一下,呵呵)
 
 

阅读(6765) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册