0
我正在將程序移植到MS Windows。該程序使用動態加載的插件。主程序中的插件引用符號。如果沒有解決所有符號,我甚至無法通過鏈接器獲取DLL。有沒有辦法解決這個問題?DLL從其父(符號)獲取符號
我正在將程序移植到MS Windows。該程序使用動態加載的插件。主程序中的插件引用符號。如果沒有解決所有符號,我甚至無法通過鏈接器獲取DLL。有沒有辦法解決這個問題?DLL從其父(符號)獲取符號
(對不起,我想評論,要求澄清,但我太新手的就可以了。)
當你說的插件「的主程序參考符號」,是關於引用函數還是數據?另外,你在使用什麼語言/編譯器?
假設它只是關於函數,並且在C/C++中:它可以從.EXE導出函數,就像它是一個DLL一樣。只需在.EXE中的函數定義前面指定__declspec(dllexport)即可。編譯.EXE文件時,應該生成一個.LIB文件,然後可以在鏈接每個插件時用作輸入。
如果我理解正確,你建議我鏈接到程序的靜態庫版本。這是獲取函數副本的好主意,但如果函數引用全局變量(包括靜態),那麼這將不起作用,因爲它們將引用變量的不同副本。其實我只是假設它不起作用。 – Rubinium 2010-09-22 13:35:50
不,實際上。導出庫是一個.LIB,它對鏈接器設置動態調用很有用。當你調用有問題的函數時,它仍然是對DLL的調用(或者在這種情況下是EXE)。 – 2011-05-25 17:28:55