How to pass strings from C# to C++ (and from C++ to C#) using DLLImport?

前端 未结 3 1564
粉色の甜心
粉色の甜心 2020-12-03 04:47

I\'ve been trying to send a string to/from C# to/from C++ for a long time but didn\'t manage to get it working yet ...

So my question is simple :
Does anyone kno

3条回答
  •  臣服心动
    2020-12-03 05:33

    in your c code:

    extern "C" __declspec(dllexport)
    int GetString(char* str)
    {
    }
    
    extern "C" __declspec(dllexport)
    int SetString(const char* str)
    {
    }
    

    at .net side:

    using System.Runtime.InteropServices;
    
    
    [DllImport("YourLib.dll")]
    static extern int SetString(string someStr);
    
    [DllImport("YourLib.dll")]
    static extern int GetString(StringBuilder rntStr);
    

    usage:

    SetString("hello");
    StringBuilder rntStr = new StringBuilder();
    GetString(rntStr);
    

提交回复
热议问题