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");
这里有个问题,就是关于释放,就是注释掉的部分。