我知道这个问题很多,但我试图切换调用约定但它没有用。 我在c#winforms代码中使用了c ++ dll。 我的函数完美地工作,直到return语句,它给了我这个错误。如果有人可以帮助我理解为什么我会贬低它。 这是我的c ++函数的结束:
ans += ";";
ans += rans;
cout << "returning value 2" << endl;
char* retval = new char[ans.size() + 1];
strcpy_s(retval,ans.size()+1, ans.c_str());
return retval;
ans是一个std :: string。
这是我的c#代码PInvoking并调用函数:
[DllImport("C:\\Users\\Boaz\\source\\repos\\Macro_Setter_DLL\\Debug\\Macro_Setter_DLL.dll", CallingConvention = CallingConvention.StdCall)]
static extern string Stop_Record();
string tmp = Stop_Record();
提前致谢!