2012-04-03 6 views
0

私は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 

は私に次のエラーを与える:Googleでおよそいじくる

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を追加することにいくつかの記事を与えましたそれはまったく助けにならない。

私の質問は、誰もボーランドのC++プロジェクト(またはBorlandで作成されたアプリケーション/ DLL)を64ビットでコンパイルしたことです(手順についてはステップバイステップで説明します)。

+0

あるコンパイラのヘッダーを#includeして別のコンパイラのヘッダーを組み込もうとするのは、かなり保証されたフェイルクジラです。 MSVC *は__uuidをサポートしていますが、私が推測するテストでは何か間違っています。 Borlandは言語に非標準のキーワードをたくさん追加したので、これは一般的に失われた原因です。 –

答えて

1

Visual StudioでC++ Builder RTL/VCLコードをコンパイルすることはできません。 EmbarcaderoのRTL/VCLとDelphi 64ビットコンパイラの使用を継続できるように、コードをVisual C++やその他のC++コンパイラに移植し、Embarcaderoの代わりにフレームワークを使用するか、Delphi XE2にコードを書き直す必要があります。