c++提供给c#的接口要获取CString
c#调用:
IntPtr ptr = new IntPtr();
GetErrorStr( ref ptr);
string str = Marshal.PtrToStringAuto(ptr);
DeleteMem(ptr);// 释放内存
c++接口
BOOL WINAPI GetErrorStr( wchar_t** strInfo)
{
CString str = _T("test");
int len = sizeof(wchar_t) * (str.GetLength() + 1) ;
*strInfo = new wchar_t[len];
memset(*strInfo, 0, len);
wcscpy_s(*strInfo, len, CT2CW(str));
return TRUE;
}
BOOL WINAPI DeleteMem(void *data)
{
if (data != NULL)
{
delete data;
data = NULL;
}
return TRUE;
}