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(); (这个也要赋一下,呵呵) 引用http://lavadiablo.spaces.live.com/blog/cns!edb786de4aef809a!246.entry

评论