我有一个静态链接库,它使用了我需要延迟加载的dll中的一些函数。所以在我的可执行文件属性中,我在Linker/Input/Delay Loaded DLLs
下添加了这个dll。我无法在lib本身中添加此选项,因为它没有Linker
属性页(因为它是静态库)
所以现在每当我在另一个可执行工具中使用这个lib时,我需要一遍又一遍地添加延迟加载选项,我想避免。我知道这曾经是一个pragma
#pragma comment(linker, "/DELAYLOAD:mydll.dll")
然而,它对我不起作用,因为它说
warning LNK4229: invalid directive '/DELAYLOAD:mydll.dll' encountered; ignored
除了LoadLibrary之外,还有其他出路吗?
答案 0 :(得分:4)
对Google进行了一些研究(猜猜你),因为我总是对这些问题感兴趣。明显的链接是:
不幸的是,这是从2004年开始的'九年和之前的一些VS版本。
但它变得更糟,我也发现了这个:
http://bytes.com/topic/net/answers/280580-delayload-pragma-fixed-whidbey
这是一年晚了,听起来很合理:
不,这从未可靠地运作过。在6.0中允许它是一个错误。一 我们稍后通过添加警告来修复。
Ronald Laeremans
Visual C ++团队
我知道,除了你的三个建议之外别无其他。