获取程序仅与目录中的某些dll一起运行

时间:2010-12-12 00:35:18

标签: c++ dll compilation

例如,当我创建一个程序并使用MinGW编译它时,如果我删除了环境变量,我需要将dll放在目录中以使其工作

即。 libgcc_s_dw2-1.dll

没有它,程序甚至不会启动。

使用QT进行开发时,我注意到我在目录中需要另一个dll,它是QtCored4.dll,我想知道程序是如何知道dll丢失的?

无论如何还要在程序中添加这样的东西, 喜欢定义语句还是什么?

我需要一个可以使用C ++的答案:)

2 个答案:

答案 0 :(得分:1)

由操作系统负责 - 因为您的程序使用DL​​L中的函数,它会在程序启动时自动加载,如果DLL丢失,您将收到错误。您可以在MSDN上详细了解此过程:Load-Time Dynamic Linking

答案 1 :(得分:1)

  用QT开发的时候,我注意到我在目录中需要另一个dll,它是QtCored4.dll,我想知道程序是如何知道dll丢失了

您还可以尝试在运行时自己加载DLL,并优雅地处理失败。请参阅LoadLibraryGetProcAddress