c#调用c 注意事项(c 返回 const char*)

c# 

[DllImport("__Internal")]
private static extern IntPtr _GetIDFA();
private string getIDFA()
{
int len = 64;
IntPtr str = _GetIDFA();
string ss = Marshal.PtrToStringAnsi(str, len);

if (ss == null)
{
byte[] buffer = new byte[len];
Marshal.Copy(str, buffer, 0, len);
return Encoding.UTF8.GetString(buffer);
}
return "";
}

c

const char* _GetIDFA (){
return "";
};

c返回字符串指针时c#要用结构体指针接收并通过新建一个托管内存拷贝

 

posted @ 2017-09-27 08:54  ForeseePretty  阅读(941)  评论(0编辑  收藏  举报