Я знаю, что этот вопрос часто задают, но я пытался переключить соглашения о вызовах, и это не сработало.
Я использую C ++ DLL в моем C # Winforms кода.
Моя функция прекрасно работает до оператора 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 # PВоззов и вызов функции:
[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();
Заранее спасибо!