我有一个用C ++方法包装的C#.Net DLL方法。
我必须这样做,因为该dll必须在外部程序( Metatrader4 )中使用,并且它只能管理C ++本机数据类型。
此刻,我可以进行调用了,一切正常,但是我不知道如何将异常变量返回给C ++包装器。
这是代码:
public int MT4_Order_pushToFirebase(string firebaseJsonUrl , string accountString ,string orderString,ref string exception) {
exception = "some error";
}
public: int __clrcall MT4_Order_pushToFirebase(wchar_t * firebaseJsonUrl, wchar_t * accountString, wchar_t * orderString, wchar_t * exception) {
System::String^ S_firebaseJsonUrl = gcnew System::String(firebaseJsonUrl);
System::String^ S_accountString = gcnew System::String(accountString);
System::String^ S_orderString = gcnew System::String(orderString);
System::String^ S_exception = gcnew System::String(exception);
int res = robin->MT4_Order_pushToFirebase(S_firebaseJsonUrl, S_accountString, S_orderString, S_exception);
return res;
}
extern int MT4_Order_pushToFirebase(wchar_t * firebaseJsonUrl, wchar_t * accountString, wchar_t * orderString, wchar_t * exception) {
RobinHoodCWrapper::RobinHoodCWrapper c;
return c.MT4_Order_pushToFirebase(firebaseJsonUrl, accountString, orderString, exception);
}
如果我尝试从外部程序(Metatrader4)调用DLL,则该方法可以正常工作,但是我无法获取异常变量...
我不知道如何处理 System :: String 和 wchar_t 变量...
感谢支持