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

c# 获取非托管指针长度

2016-06-15 11:49 453 查看
public List<string> GetPDFValues()
{
List<string> strs = new List<string>();
unsafe
{
var len = 0;
//调用c++ 返回char**
var a = GaussianDistributionServiceProxy.GetPDFValues();

var cx = 0;
//获取char**指针长度 start
while (true)
{
var result = Marshal.PtrToStringAnsi((IntPtr)(*(a + cx)));
if (result == null)
{
len = cx - 1;
cx = 0;
break;
}
cx++;

}

//获取char**指针长度 end

//char** 转换为List<string>
for (int i = 0; i < len; i++)
{
string s = Marshal.PtrToStringAnsi((IntPtr)a[i]);
strs.Add(s); }
}
return strs;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: