1

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

4

0 回答 0