用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