c# 获取非托管指针长度
Posted 听哥哥的话
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 获取非托管指针长度相关的知识,希望对你有一定的参考价值。
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;
}
以上是关于c# 获取非托管指针长度的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中传递 IntPtr 指针后,在非托管 C++ 代码中分配数组,编组类型