如何在vb里面用c的数组指针

dgxw82544514 2008-09-19 06:45:50
(大家好,第一次问问题,有点紧张不知道写的详细么?)(本人在大连,如果您能帮上忙,一顿肯德基答谢,谢谢大家)
本人现在在vb中利用opengl(用c编写)开发三维程序
现在用到一个函数 (一维求值器)
glMap1f (GL_MAP1_VERTEX_3, 0#, 1#, 3, 4, &ctrlpoints(0, 0))
ctrlpoints 是个数组

在vc里面用的是
gldouble ctrlpoints[4][3]={{-0.4,-0.4,0} ,{-0.2,0.4,0},{0.2,-0.4,0},{0.4,0.4,0}}
glMap1f (GL_MAP1_VERTEX_3, 0#, 1#, 3, 4, &ctrlpoints(0, 0)))

那在vb里面大概是这样用的
Dim ctrlpoints(3, 2) As Single
ctrlpoints(0, 0) = -0.4: ctrlpoints(0, 1) = -0.4: ctrlpoints(0, 2) = 0
ctrlpoints(1, 0) = -0.2: ctrlpoints(1, 1) = 0.4: ctrlpoints(1, 2) = 0
ctrlpoints(2, 0) = 0.2: ctrlpoints(2, 1) = -0.4: ctrlpoints(2, 2) = 0
ctrlpoints(3, 0) = 0.4: ctrlpoints(3, 1) = 0.4: ctrlpoints(3, 2) = 0

glMap1f GL_MAP1_VERTEX_3, 0#, 1#, 3, 4, ctrlpoints(0, 0)
就是这里面ctrlpoints应该是个数组指针,我这样表示不对
(就是C语言读的第一个数ctrlpoints(0, 0)是{-0.4,-0.4,0},而VB读的第一个数是-0.4)
我不知道这里的ctrlpoints要表示数组指针的话,该怎么表示?

...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Soyokaze 2008-09-19
  • 打赏
  • 举报
回复
有一点很重要的,C里面的二维数组在内存中是这样排列的:[0, 0], [0, 1]...[0, n], [1, 0], [1, n]...
而VB是这样的:(0, 0), (1, 0), (2, 0)...(n, 0),(0, 1),(1, 1)...
东方之珠 2008-09-19
  • 打赏
  • 举报
回复
VarPtr(ctrlpoints(0,0))得到数组ctrlpoints的首地址。
另外,在C++中,数组名ctrlpoints和&ctrlpoints(0, 0)一样,都代表数组首地址。
dgxw82544514 2008-09-19
  • 打赏
  • 举报
回复
自己先顶一下哈

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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