我在本网站搜索了我要找的内容;但我不明白。
所以,我写了这个问题。
我用C ++(代码块IDE)编写了一个.dll文件和一个程序。如果dll文件和程序在同一个目录中,我的程序就可以运行。
但如果我删除dll文件并执行我的程序,Windows会向我显示此错误:
" xxx.exe已停止工作。"
我想"程序无法启动,因为您的计算机缺少xxx.dll。"消息而不是这个。
我该怎么办?
答案 0 :(得分:1)
您可以执行三种链接。
当应用程序调用LoadLibrary或LoadLibraryEx函数时,系统会尝试查找DLL(有关详细信息,请参阅动态链接库搜索顺序)。如果搜索成功,系统会将DLL模块映射到进程的虚拟地址空间,并增加引用计数。如果对LoadLibrary或LoadLibraryEx的调用指定了一个DLL,其代码已经映射到调用进程的虚拟地址空间,则该函数只返回DLL的句柄并递增DLL引用计数。 〜taken from here
您要做的是运行时链接到您的dll并测试结果而不是您当前正在做的事情。
Visual Studio提供第三个选项,延迟加载DLL .~MSalters
为您处理loadLibrary调用。