[英]How to force a DLL dependency even when no symbols are directly used by EXE?
我有一個依賴於B.DLL的A.DLL。 A.DLL包含一些初始化代碼( DllMain
),用於向B.DLL注冊內容。
我還有一個可執行文件E.EXE,它不直接引用任何A.DLL符號,但它通過從B.DLL獲得的通用接口使用A.DLL的內容。
問題在於A.DLL永遠不會加載到E.EXE的進程中,因為它的任何導出符號都不是E.EXE的導入。
我是否可以強制將A.DLL加載到進程中,而無需實際引用E.EXE中的A.DLL符號,也無需反轉A.DLL和B.DLL之間的依賴關系(或創建依賴關系循環),也可以不使用顯式LoadLibrary()
打電話嗎?
編輯:問題是在Windows上使用Visual Studio產生的,但可移植性是一個問題,因此LoadLibrary()
不可用。
您可以指定/ INCLUDE鏈接器選項,並提供A.dll
導出的符號。
即使您的可執行文件沒有真正引用該符號,該選項也會強制鏈接器將A.dll
添加到依賴項中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.