我在Borland C++ Builder XE2中创建了一个32位DLL没有问题。不知怎的用Borland C++ Builder创建一个64位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) : fatal error C1189: #error : "System.hpp/sysmac.h and related headers need __declspec(uuid(..)) and __uuidof support"
瞎在谷歌只给了我上加入的#define DECLSPEC_UUID一些帖子(GUID )根本没有帮助。
所以我的问题是,有没有人成功编译过64位Borland C++项目(或在Borland中创建的应用程序/ DLL)(以及如何分步说明)?
试图#include一个编译器的头文件并与另一个编译器一起构建是一个相当有保证的失败鲸鱼。 MSVC *不支持__uuid,我猜测测试有问题。 Borland在语言中添加了很多非标准关键字,所以这通常是一个失败的原因。 – 2012-04-03 13:05:29