您的位置:首页 > 编程语言 > C语言/C++

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

2013-04-03 08:56 295 查看
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");




这里有个问题,就是关于释放,就是注释掉的部分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: