C#调用C++生成的Dll库,Dll使用callback向C#传递指针

来源:互联网 发布:kali linux安装输入法 编辑:程序博客网 时间:2024/06/05 11:28

C++代码

void SetCallback(CPPCallback callback){char *p = "from C++";callback(p);}

C#代码

   [DllImport("DLLTest")]    private static extern void SetCallback( CSCallback callback );    public delegate void CSCallback( IntPtr num );    static CSCallback callback;    void Start()    {        callback = CSCallbackFunction;    }    static void CSCallbackFunction( IntPtr num )    {        string str = Marshal.PtrToStringAnsi( num );        Debug.Log("====== " + str);    }


注意:以上是基于Unity环境

在按钮事件中调用 SetCallback(callback);  

IntPtr与string互转

IntPtr init = Marshal.StringToHGlobalAnsi(textBox1.Text);textBox2.Text = Marshal.PtrToStringAnsi(outit);Marshal.FreeHGlobal(outit); 



0 0
原创粉丝点击