c++傳CString到c#

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;
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章