繁体   English   中英

如何在C ++中的程序中显示Windows的“找不到DLL”错误?

[英]How to show Windows' “DLL not found” error in my program in C++?

我已经在这个网站上搜索了我想要的东西; 但我不明白

所以,我已经写了这个问题。

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

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

“ xxx.exe已停止工作。”

我想“由于您的计算机缺少xxx.dll,导致程序无法启动”。 消息代替这个。

我该怎么办?

您可以执行三种链接。

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

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

您想要做的是运行时链接到dll并测试结果,而不是当前正在执行的操作。

  • Visual Studio提供了第三个选项,即延迟加载的DLL。〜MSalters

它为您处理loadLibrary调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM