博客首页 注册 建议与交流 排行榜 加入友情链接         宝宝相册的专门空间
推荐 投诉 搜索: 帮助

一笑

slimzhao.cublog.cn


定义全局对象的类构造函数要特别注意
全局对象的构造函数发生在main之前, 如果是DLL, 也同样发生在DllMain之前, 这一点就要求这样的类的构造函数中什么东西可用什么不可用要有特别的小心. 如果依赖于其它的一些在main/DllMain中初始化的内容, 就会出现相应的变量未被正确初始化就在该构造函数中被使用.

我的bug实录: 在DllMain中保存下当前DLL的hModule句柄, 在同一个DLL的其它代码中需要通过 GetModuleFileName来得到当前DLL的路径.

由于是在DllMain中已保存一份全局的hModule的copy, 所以整个代码中都假设该变量一定被正确初始化了, 一直到写一个类的构造函数中(这个类有一个实例是全局变量), 才发现这一切都发生在DllMain之前.

发表于: 2008-04-18 ,修改于: 2008-04-18 10:30,已浏览149次,有评论0条 推荐 投诉


网友评论

发表评论