例如,当我创建一个程序并使用MinGW编译它时,如果我删除了环境变量,我需要将dll放在目录中以使其工作
即。 libgcc_s_dw2-1.dll
没有它,程序甚至不会启动。使用QT进行开发时,我注意到我在目录中需要另一个dll,它是QtCored4.dll,我想知道程序是如何知道dll丢失的?
无论如何还要在程序中添加这样的东西, 喜欢定义语句还是什么?
我需要一个可以使用C ++的答案:)
答案 0 :(得分:1)
由操作系统负责 - 因为您的程序使用DLL中的函数,它会在程序启动时自动加载,如果DLL丢失,您将收到错误。您可以在MSDN上详细了解此过程:Load-Time Dynamic Linking。
答案 1 :(得分:1)
用QT开发的时候,我注意到我在目录中需要另一个dll,它是QtCored4.dll,我想知道程序是如何知道dll丢失了
您还可以尝试在运行时自己加载DLL,并优雅地处理失败。请参阅LoadLibrary
和GetProcAddress
。