用cp文件中的#pragma指定延迟加载dll

我有一个静态链接的库,它使用一些我需要延迟加载的dll函数。 所以在我的可执行文件的属性中,我在Linker/Input/Delay Loaded DLLs下添加了这个Linker/Input/Delay Loaded DLLs 。 我不能在lib本身中添加这个选项,因为它没有Linker属性页面(因为它是一个静态库)
所以现在每当我在另一个可执行工具中使用这个库时,我需要一遍又一遍地添加延迟加载选项,这是我想避免的。 我知道这里曾经有过一个杂注

#pragma comment(linker, "/DELAYLOAD:mydll.dll")

但它不适合我,因为它说

warning LNK4229: invalid directive '/DELAYLOAD:mydll.dll' encountered; ignored

除了LoadLibrary以外,还有什么出路吗?


做了一些关于谷歌的研究(猜对你),因为我总是对这些事情感兴趣。 明显的联系是:

http://social.msdn.microsoft.com/Forums/vstudio/en-US/807606af-f7d7-4d9b-a9f3-062b23fddb2b/using-the-delayload-linker-switch-with-a-custom-dll

不幸的是,它是从2004年开始的,那是'九年前的一些VS版本。

但它变得更糟糕,我也发现这一点:

http://bytes.com/topic/net/answers/280580-delayload-pragma-fixed-whidbey

这已经晚了一年,听起来很合理:

不,这从来没有工作可靠。 这是6.0中允许的一个错误。 稍后我们通过添加警告来修复。

罗纳德Laeremans

Visual C ++团队

我知道,除了你的三条建议之外,没有其他的方法。

链接地址: http://www.djcxy.com/p/74127.html

上一篇: Specify delay loading dll with #pragma in the cpp file

下一篇: exec() and phantomjs issue with absolute paths