请教C# 中指针的指针问题

ericyi 2009-03-20 08:14:22
现有外部dll的一个函数 function(int a, ref int b, out IntPtr c), 输出:c 在dll 的函数里定义为一个结构体数组的指针的指针,输出:b为这个结构体数组的大小, 假设结构体为 S {int x, int y, int z}
请问在调用这个函数前 怎样初始化 C ,以及调用完后怎样拿到其中某个S结构体的成员X,Y和Z

谢谢
...全文
197 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ericyi 2009-03-23
  • 打赏
  • 举报
回复
请问1楼 怎么拿到这个数组的首地址?
因为我调用API 后 拿到的是存放这个数组首地址的指针的地址,即指针的指针,设dll中函数原型为function(int a, int * b, S ** c), b为拿到的数组的大小,C为存放S结构体数组首地址的指针的地址。
请问如何把输出C 转换为 我所需要的数组的首地址?这样我就可以用您所说的int ptr=marshal UnsafeAddrOfPinnedArrayElement(s1, b)命令拿到每个结构体了,万分感谢
hechenqingtian 2009-03-22
  • 打赏
  • 举报
回复
C#是有指针的,unsafe标识
ChrisAK 2009-03-22
  • 打赏
  • 举报
回复
谁说C#没指针...
没写过unsafe代码别瞎说.这种的我一般用unsafe做.
非unsafe的...参考1楼.
zcdg909 2009-03-21
  • 打赏
  • 举报
回复
C#语言不讲指针,指针是C、C++中的东西
fskjb01 2009-03-20
  • 打赏
  • 举报
回复
c#有指针吗!
真相重于对错 2009-03-20
  • 打赏
  • 举报
回复
s[] s1 = ....
int ptr=marshal UnsafeAddrOfPinnedArrayElement(s1, 0)

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧