如何显示Windows' "未找到DLL"我的程序在C ++中出错?

时间:2017-05-04 10:09:02

标签: c++ dll error-handling throw

我在本网站搜索了我要找的内容;但我不明白。

所以,我写了这个问题。

我用C ++(代码块IDE)编写了一个.dll文件和一个程序。如果dll文件和程序在同一个目录中,我的程序就可以运行。

但如果我删除dll文件并执行我的程序,Windows会向我显示此错误:

" xxx.exe已停止工作。"

我想"程序无法启动,因为您的计算机缺少xxx.dll。"消息而不是这个。

我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以执行三种链接。

  • 加载时链接是指程序启动时自动加载DLL的时间。 Windows通常在与可执行文件相同的文件夹中找到此DLL。
  • 运行时链接是指通过在代码中调用LoadLibrary来专门加载DLL。
  

当应用程序调用LoadLibrary或LoadLibraryEx函数时,系统会尝试查找DLL(有关详细信息,请参阅动态链接库搜索顺序)。如果搜索成功,系统会将DLL模块映射到进程的虚拟地址空间,并增加引用计数。如果对LoadLibrary或LoadLibraryEx的调用指定了一个DLL,其代码已经映射到调用进程的虚拟地址空间,则该函数只返回DLL的句柄并递增DLL引用计数。 〜taken from here

您要做的是运行时链接到您的dll并测试结果而不是您当前正在做的事情。

  •   

    Visual Studio提供第三个选项,延迟加载DLL .~MSalters

为您处理loadLibrary调用。