0

我在 Borland C++ Builder XE2 中创建了一个 32 位 DLL 没问题。

我的任务也是创建一个 64 位版本。在研究了“如何”之后,我知道 Builder 还不支持 64 位编译。

经过一番挖掘之后,看起来似乎唯一的方法(或任何类型的 64 位编译)是使用 Visual Studio Express 命令行。因此我尝试了以下命令来尝试编译:

CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /x64
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\cl.exe" -IC:\projects\dll -I"C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\include\windows\vcl" -I"C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\include\windows\rtl" -MD -LD C:\projects\dll\dll.cpp -FeMyDLL.dll

运行上面给我以下错误:

C:\Program Files (x86)\Embarcadero\RAD Studio\9.0\include\windows\rtl\sysmac.h(162) : 致命错误 C1189: #error : "System.hpp/sysmac.h 和相关头文件需要 __declspec( uuid(..)) 和 __uuidof 支持"

在谷歌上胡闹只给了我一些关于添加 #define DECLSPEC_UUID(guid) 的帖子,这根本没有帮助。

所以我的问题是,有没有人成功地为 64 位编译过 Borland C++ 项目(或在 Borland 创建的应用程序/DLL)(以及如何一步一步地编译)?

4

1 回答 1

1

您无法使用 Visual Studio 编译 C++Builder RTL/VCL 代码。您必须将代码移植到 Visual C++ 或其他 C++ 编译器并使用其框架而不是 Embarcadero 的框架,或者在 Delphi XE2 中重新编写代码,以便您可以继续使用 Embarcadero 的 RTL/VCL 和 Delphi 64 位编译器。

于 2012-04-11T03:50:10.050 回答