我們有一個在內部生成的DLL,並且我們有關聯的靜態LIB的存根。如何重命名DLL但仍允許EXE找到它?
我們也有一個EXE,它使用這個DLL使用靜態鏈接到DLL的LIB文件(即,不是手動使用LoadLibrary)的簡單方法。
當我們部署EXE時,我們希望將DLL文件名稱更改爲混淆原因(根據客戶要求)。
我們如何做到這一點,以便我們的EXE能夠自動找到DLL?
我試圖重命名DLL和LIB文件(在它們被構建爲它們的正常名稱之後),然後將EXE項目設置更改爲與重命名的LIB鏈接。這在運行時失敗了,因爲我猜這個DLL的名字被燒入了LIB文件,而不是簡單地被鏈接器用「.dll」替換「.lib」來猜測。
一般來說,我們不希望將這個混淆應用到DLL的所有用途,所以我們想保留當前的DLL項目輸出文件。
我希望能有一種方法,我們可以編輯DLL的LIB文件,並用別的東西替換DLL文件的硬編碼名稱。在這種情況下,這可以完全在EXE項目中完成(可能作爲預構建步驟)。
更新:我發現延遲加載不工作,因爲我的DLL包含導出的C++類。 見this article。
有沒有其他的選擇?
正如標籤所示,這是針對本地項目的,因此程序集不適用。 – 2008-11-11 10:26:56
哦對...我的壞。 – 2008-11-11 11:09:51