2013-09-06 26 views
7

Tôi có thư viện liên kết tĩnh sử dụng một số hàm từ dll mà tôi cần phải trì hoãn tải. Vì vậy, trong tài sản của tôi thực thi tôi đã thêm dll này theo Linker/Input/Delay Loaded DLLs. Tôi không thể thêm tùy chọn này vào trong lib vì nó không có các trang thuộc tính Linker (vì nó là một lib tĩnh)
Vì vậy, bây giờ bất cứ khi nào tôi sử dụng lib này trong một công cụ thực thi khác, tôi cần thêm tùy chọn tải trễ hơn và hơn nữa, mà tôi muốn tránh. Tôi biết có sử dụng được một pragma cho điều nàyChỉ định trễ tải dll với #pragma trong tệp cpp

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

Tuy nhiên nó không làm việc cho tôi, vì nó nói

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

Có một lối thoát, trừ LoadLibrary?

+0

Theo http://social.msdn.microsoft.com/Forums/vstudio/en-US/807606af-f7d7-4d9b-a9f3-062b23fddb2b/using-the-delayload-linker-switch-with-a-custom dll nó sẽ có thể với pragma. –

+0

vâng tôi nghĩ như vậy, nhưng có vẻ như nó không hoạt động trong vs2008 của tôi – spiritwolfform

Trả lời

4

Đã thực hiện một số nghiên cứu trên google (phỏng đoán bạn) vì tôi luôn quan tâm đến những vấn đề như vậy. Các rõ ràng liên kết là:

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

Đáng tiếc là nó là từ năm 2004, đó là chín năm và một số phiên bản VS trước.

Nhưng nó có được worser, tôi cũng tìm thấy này:

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

mà là một năm cuối và âm thanh rất chính đáng:

Không, đây không bao giờ làm việc đáng tin cậy. Đó là một lỗi để cho phép nó trong 6.0. Một mà chúng tôi đã khắc phục sau bằng cách thêm cảnh báo.

Ronald Laeremans

đội ++ Visual C

tôi biết, bên cạnh ba đề xuất của bạn không bổ sung, theo cách khác.

+0

có, có vẻ như nó đã bị xóa – spiritwolfform

Các vấn đề liên quan