簡體   English   中英

使用cpp文件中的#pragma指定延遲加載dll

[英]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之外,還有出路嗎?

做了一些谷歌的研究(猜你),因為我總是對這些問題感興趣。 明顯的聯系是:

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中允許它是一個錯誤。 我們稍后通過添加警告修復的一個。

羅納德拉雷曼斯

Visual C ++團隊

我知道,除了你的三個建議,沒有其他的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM