以某种方式使用Borland C ++ Builder创建64位DLL

时间:2012-04-03 09:28:37

标签: dll 64-bit c++builder c++builder-xe2

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

我的任务是创建一个64位版本。在研究了“hows”后,我发现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)(以及如何逐步完成)?

1 个答案:

答案 0 :(得分:1)

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