平民程序 - linghuye's blog

天下风云出我辈,一入江湖岁月催。皇图霸业谈笑中,不胜人生一场醉。提剑跨骑挥鬼雨,白骨如山鸟惊飞。尘事如潮人如水,只笑江湖几人回。

随笔 - 221, 文章 - 0, 评论 - 680, 引用 - 0
数据加载中……

奇怪的应用程序正常初始化失败

若A.exe静态链接B.dll,B.dll使用static HMODULE hDLL = ::LoadLibrary("C.dll");加载C.dll,则若C.dll加载失败,则A.exe出现"应用程序正常初始化(0xC0000005)失败.请单击"确定",终止应用程序."

为避免 static HMODULE hRenderCraftDLL = ::LoadLibrary("C.dll");在程序一启动就运行加载,将其改为
 inline static HMODULE GetRenderCraftDLL()
 {
  static HMODULE hRenderCraftDLL = ::LoadLibrary("RenderCraft.dll");
  return hRenderCraftDLL;
 }
用函数来实现延迟加载的技巧.

posted on 2006-11-30 20:51 linghuye 阅读(7148) 评论(6)  编辑 收藏 引用 所属分类: 编程札记

评论

# re: 奇怪的应用程序正常初始化失败  回复  更多评论   

哇靠太专业了几个能看懂的,能看懂的估计这个问题也不是问题了!
2007-06-26 09:41 | lin

# re: 奇怪的应用程序正常初始化失败  回复  更多评论   

延迟加载???
是不是治标不治本啊
2007-07-02 20:42 | fish_wei

# re: 奇怪的应用程序正常初始化失败  回复  更多评论   

0xC0000005 访问违例错误,静态全局变量的初始化在DLLMain函数之前
2009-10-11 20:06 | VC
只有注册用户登录后才能发表评论。