我对 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 时,我收到一个错误“外部组件已引发异常”我应该如何声明和调用我的函数?