我对C ++很新。
我有一个C#dll,我想在c ++项目中调用它。
C#中的函数我会这样声明:
public int ShowStringReturn(out string str)
{
str = "Message from c#";
return 0;
}
然后,我在我的C ++项目中调用它:
__declspec(dllexport)
int ShowStringCSharpReturn (std::string &strOut)
{
try
{
String^ str;
IngWrapper::Ingressus_Instance->xIMUobject->ShowStringReturn(str);
using System::Runtime::InteropServices::Marshal;
const char* chars = (const char*)(Marshal::StringToHGlobalAnsi(str)).ToPointer( );
strOut = chars;
return 0;
}
catch (Exception^ ex)
{
MessageBox::Show(ex->Message,"Error",MessageBoxButtons::OK,MessageBoxIcon::Error);
return -1;
}
}
我可以编译它,但是当我在Windows窗体应用程序中调用activex dll时,我收到错误“外部组件抛出了异常” 我应该如何宣布和调用我的函数?