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