2010-01-12 34 views
1

這裏有一個奇怪的問題,但AutoCAD使用擴展名爲.ARX的擴展名,它們的擴展名除了擴展名外,其實和擴展名一樣。使用非 - 「。DLL」擴展名在其他模塊中創建依賴關係

現在我們已經構建了三個.ARX文件,其中後兩個文件依賴於第一個文件。在加載這兩個文件時,AutoCAD會抱怨找不到所需的文件,並且在使用Dependency Walker工具時,很明顯Visual C++ 2008鏈接器已經生成了對第一個文件的引用,但使用.DLL擴展名。我認爲這是我們的問題。它爲一些導出的函數尋找A.DLL,但是這個文件實際上被命名爲A.ARX。

可以配置Visual Studio項目,以便它鏈接到帶有ARX擴展名的文件,而不是生成這個看似錯誤的代碼?

更新:這是關於C++ DLL的。

+0

您正在編譯哪種語言?以及你如何引用這些DLL? –

+0

對不起,錯過了這個.. C++。我正在使用Visual C++ 2008. – Jonas

回答

1

不確定爲什麼需要靜態鏈接到另一個ACAD adobe擴展。共享函數可能應該被重構爲另一個DLL。 或者您可以change the output file name generated in the export lib file

+0

你的意思是動態鏈接?是的,我可以在另外兩個擴展中複製我的代碼,這只是我認爲這比我第一次假設更容易解決。我已經使用/ OUT:指令更改了輸出文件名,但問題是,在鏈接時,鏈接器似乎假定我打算鏈接到一個DLL擴展名的DLL,並且只在以後寫入相應的最終產出,他們被命名爲.ARX。 我現在已經通過二進制編輯輸出文件解決了這個問題,但是由於這是一個混亂,我現在會繼續解決這個問題。 – Jonas

+0

奇怪,我在VC2005中創建了一個C++ DLL,在設置中更改了輸出文件名,喜歡生成的lib,我的exe加載了沒有dll擴展名的文件。 –