我有一個Delphi的DLL,它的工作原理,當德爾福應用程序調用,並且出口的方法聲明爲:如何調用由C德爾福DLL WideString的參數++(包括變種參數)
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;
我已經建立了DLL並使用Rad公司的C++測試程序Studio XE4 - 這是一個64位的DLL和APP
我應該如何去做這件事?
最好的問候,
加里
沒有'DllImport' C++ Builder中。你是否使用.NET PInvoke? –
Remy,如何在不使用DLLImport的情況下獲取DLL庫? btw謝謝你的迴應。 – user2521117
@ user2521117如果您不使用C++ Builder,則可能無法工作,因爲C++沒有標準的二進制接口。 –