若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;
}
用函数来实现延迟加载的技巧.
奇怪的应用程序正常初始化失败
最新推荐文章于 2018-10-16 16:42:32 发布
本文介绍了一种解决因C.dll加载失败导致A.exe初始化错误的方法。通过将staticHMODULEhDLL=::LoadLibrary(C.dll)修改为使用函数GetRenderCraftDLL()实现延迟加载RenderCraft.dll,可以有效避免因加载失败而引发的应用程序崩溃。
4640

被折叠的 条评论
为什么被折叠?



