[英]Specify delay loading dll with #pragma in the cpp file
我有一個靜態鏈接庫,它使用我需要延遲加載的dll中的一些函數。 所以在我的可執行文件屬性中,我已經在Linker/Input/Delay Loaded DLLs
下添加了這個dll。 我無法在lib本身中添加此選項,因為它沒有Linker
屬性頁(因為它是一個靜態庫)
所以現在每當我在另一個可執行工具中使用這個lib時,我需要一遍又一遍地添加延遲加載選項,我想避免。 我知道曾經有過這方面的實用主義
#pragma comment(linker, "/DELAYLOAD:mydll.dll")
然而,它對我不起作用,因為它說
warning LNK4229: invalid directive '/DELAYLOAD:mydll.dll' encountered; ignored
除了LoadLibrary之外,還有出路嗎?
做了一些谷歌的研究(猜你),因為我總是對這些問題感興趣。 明顯的聯系是:
不幸的是,它是從2004年開始的,那是'九年和之前的一些VS版本。
但它變得更糟,我發現了這個:
http://bytes.com/topic/net/answers/280580-delayload-pragma-fixed-whidbey
這是一年晚了,聽起來很合理:
不,這從未可靠地運作。 在6.0中允許它是一個錯誤。 我們稍后通過添加警告修復的一個。
羅納德拉雷曼斯
Visual C ++團隊
我知道,除了你的三個建議,沒有其他的方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.