2013-09-06 12 views
7

Ho una libreria collegata staticamente che utilizza alcune funzioni da una DLL che ho bisogno di ritardare-caricare. Quindi nelle proprietà del mio eseguibile ho aggiunto questa DLL sotto Linker/Input/Delay Loaded DLLs. Non posso aggiungere questa opzione nella lib stessa poiché non ha le pagine di proprietà Linker (perché è una lib statica)
Quindi ora ogni volta che uso questa lib in un altro strumento eseguibile ho bisogno di aggiungere l'opzione di caricamento ritardato ancora e ancora, che voglio evitare. So che ci usato per essere un pragma per questoSpecificare il ritardo di caricamento della DLL con #pragma nel file cpp

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

Tuttavia non funziona per me, perché si dice

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

C'è una via d'uscita, diversi da LoadLibrary?

+0

Secondo http://social.msdn.microsoft.com/Forums/vstudio/en-US/807606af-f7d7-4d9b-a9f3-062b23fddb2b/using-the-delayload-linker-switch-with-a-custom -Dll dovrebbe essere possibile con il pragma. –

+0

sì ho pensato così, ma sembra che non funzioni nel mio vs2008 – spiritwolfform

risposta

4

Ha fatto qualche ricerca su google (indovina come te) perché sono sempre interessato a tali argomenti. Il collegamento è ovviamente:

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

Purtroppo è dal 2004, cioe' nove anni e alcune versioni VS prima.

Ma ottenere worser, ho trovato anche questo:

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

che è un anno di ritardo e suona molto plausibile:

No, questo non ha mai funzionato in modo affidabile. Era un bug per consentirlo in 6.0. Uno risolto in seguito aggiungendo l'avviso.

Ronald Laeremans

Visual C++ squadra

sapevo, oltre i vostri tre suggerimenti nessun ulteriore, altro modo.

+0

sì, sembra che sia stato rimosso – spiritwolfform

Problemi correlati