利用.net技术解决C++导出函数char*转C#string

来源:互联网 发布:2016程序员笔记本推荐 编辑:程序博客网 时间:2024/06/05 19:52

C++导出函数定义:

 LONG  Test::Test(String  ^c1,String  ^c2,String  ^c3)  {   using namespace Runtime::InteropServices;   char* chars = (char*)(Marshal::StringToHGlobalAnsi(c1)).ToPointer();   char* chars1 = (char*)(Marshal::StringToHGlobalAnsi(c2)).ToPointer();   char* chars2 = (char*)(Marshal::StringToHGlobalAnsi(c3)).ToPointer();   return ::Init(chars, wDVRPort,chars1, chars2);   //Marshal::FreeHGlobal(IntPtr((void*)chars));   //Marshal::FreeHGlobal(IntPtr((void*)chars1));   //Marshal::FreeHGlobal(IntPtr((void*)chars2));  }


C#使用

  Test   tc=new Test();   tc.Test("aaa","bbbbbb","ccccccc");


 

  这里有个问题,就是关于释放,就是注释掉的部分。

原创粉丝点击