2012-01-04 119 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