2012-01-04 110 views
7

最近我發現了a problem on the midas,我修復了它,現在的問題是我想使用MidasLib而不是midas.dll,並且只能使用源代碼構建該DLL。如何從midas源代碼構建midas.obj

來源是C++,我對它的知識很少。我知道MidasLib.pas在內部使用了midas.obj,所以我需要創建它以將靜態鏈接到我的應用程序。如何在C++ Builder上做到這一點? (XE)

+0

您可能更適合在內存中修補代碼,而不是嘗試重新編譯。如果你可以在內存中找到255,那麼你所需要做的只是一個相當VirtualProtect的修改,你將是一個很好的選擇。 – 2012-01-04 19:34:46

+0

@DavidHeffernan是的!這真的是最好的形式,但是如何找到:1 - #define聲明; 2 - 要修改的行? – 2012-01-05 02:29:05

+0

@DavidHeffernan所以,從源代碼構建midas.obj沒有辦法? – 2012-01-05 02:30:06

回答

1

編譯C++代碼時,編譯器會爲每個.CPP/.C文件創建一個.OBJ文件,並將它們保存在計算機的某個位置。在大多數情況下會發生什麼情況是,所有這些.OBJ文件都會運行鏈接器,將它們連接到一個EXE或DLL中,但在您的情況下,您不需要這些結果。和大多數編程IDE一樣,C++ Builder自動執行編譯和鏈接。

如果你只是想要.OBJ,你需要找到C++ Builder放置它的.OBJ文件的位置(稱爲它的「中間輸出」,通常,因爲它是編譯和鏈接之間的中間步驟) 。所以你必須有一個名爲midas.cpp或midas.c的源文件,它產生一個名爲midas.obj的相應輸出文件。

+0

是的!這是我正在尋找的答案。但不幸的是,英巴卡迪諾不提供midas.cpp,所以這次沒有midas.obj。但是我遵循David Heffernan的方法,並且在原始的midas.obj上做了一個補丁以獲得預期的行爲。非常感謝你。 .obj文件用於C/C++上的.cpp文件,如.dcu文件用於Delphi上的.pas文件;) – 2012-01-15 01:26:39

+0

這是我的修復程序(在葡萄牙語中,對不起):https:/ /sites.google.com/site/carlosfeitozafilho/artigos/comoobtermensagensdeerroereconcileerrorcommaisde255caracteres – 2012-01-15 01:34:58