Delphiアプリから呼び出されたときに機能するDelphi DLLがあり、次のように宣言されたメソッドをエクスポートします。
Procedure ProduceOutput(request,inputs:widestring; var ResultString:widestring);stdcall;
C++ 側では、次のことを試しました。
[DllImport( "ArgumentLab.dll", CallingConvention = CallingConvention.StdCall, CharSet=CharSet.WideString )];
extern void ProduceOutput(WideString request, WideString inputs, WideString ResultString);
WideString arequest = WideString(ComboBox1->Text);
WideString ainput = "<xml> Input Text Goes Here </XML>";
WideString aresultstring;
WideString &aresultstringpointer = aresultstring;
aresultstring = " ";
ProduceOutput(arequest, ainput, &aresultstringpointer);
Memo1->Lines->Text = aresultstring;
私のコンソールエラーは次のとおりです。
Unit1.cpp(13): candidate function not viable: no known conversion from 'BSTR *' (aka 'wchar_t **') to 'System::WideString' for 3rd argument;
Rad Studio XE4 を使用して DLL と C++ テスト アプリをビルドしました。これは 64 ビットの DLL と APP です。
これを行うにはどうすればよいでしょうか?
よろしくお願いします、
ギャリー