我有一個預先存在的可執行文件,我沒有源代碼,它想要與一個目標文件或靜態庫(C++)鏈接,爲此我可以使用做有源碼。我正在使用Visual Studio 8.0。將.obj或.lib鏈接到預先存在的可執行文件
關於這個問題的第一件事,請不要問爲什麼我需要這樣做。我只想知道如何去做(我很確定它可以完成)。
我試着將「myprogram.exe」可執行文件添加到「附加依賴項」C++鏈接器項目屬性中。這將導致以下鏈接器命令行選項:
/OUT: 「C:\用戶\我\文檔\ Visual Studio 2008的\項目\ SampleCppLibrary \調試\ SampleCppLibrary.lib」/ NOLOGO myprogram.exe
當我建立這個項目,我得到這個錯誤:
Error 1 fatal error LNK1107: invalid or corrupt file: cannot read at 0x268 c:\Users\me\Documents\Visual Studio 2008\Projects\SampleCppLibrary\SampleCppLibrary\myprogram.exe 1 SampleCppLibrary
我想通,試圖創建一個鏈接了可能是固有的錯誤可執行的.lib。所以我將項目類型改爲exe,我故意沒有給它一個主要的入口點。相反,我給了它:
extern int _tmain(int argc, _TCHAR* argv[]);
我的希望是,預先存在的可執行文件中的入口點將填補鏈接器的空白。不幸的是,錯誤沒有改變。這個概念有什麼問題嗎(我已經知道它完全是奇怪的)?或者,也許我需要設置額外的標誌來指示與所鏈接的exe的性質?
不幸的是,我不能那樣做。我需要爲現有的可執行文件添加一個新的入口點,以便在作業完成後仍然只有一個文件。入口點甚至不需要調用可執行文件的任何部分(我知道這使得我的請求變得非常奇怪,但請隨它去做)。 – 2011-02-17 22:51:21