VB如何向C++dll里的方法传递byte数组地址

神之泪花 2015-01-30 03:02:44
C++端的参数是byte指针类型
HRESULT CTest::Test(BYTE* Dt)

现在想从VB端调用C++编译好的dll,测试代码如下:
Dim  obj As Test.Obj 
obj = New Test.Obj()


到这一步都没问题,可以正常取得C++ dll的实例
调用C++的方法

Dim arr() as Byte
Redim arr(10)
arr(0) = 1
arr(1) = 2
...
obj.Test(arr(0))

目前用arr(0)这种形式只传了byte数组的首个元素,实际需求是想把byte数组地址传递给C++
VB应该如何传递byte数组地址给C++,十分感谢!
...全文
387 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
神之泪花 2015-02-06
  • 打赏
  • 举报
回复
引用 4 楼 Tiger_Zhao 的回复:
Call obj.Test(arr(0))
'或'
obj.Test arr(0)
原因见这个帖子我#1的说明。
4L的方法可行,结帖
神之泪花 2015-02-02
  • 打赏
  • 举报
回复
引用 2 楼 findcaiyzh 的回复:
调用C/C++不是得用 platform invoke吗? 难道你用的是managed C++?
我调用的是一个编译好的C++ Com,dll参照之后C++的实例就能取到
神之泪花 2015-02-02
  • 打赏
  • 举报
回复
引用 1 楼 CityBird 的回复:
obj.Test(arr)
这么写编译不能通过,提示参数类型不匹配
Tiger_Zhao 2015-02-02
  • 打赏
  • 举报
回复
Call obj.Test(arr(0))
'或'
obj.Test arr(0)

原因见这个帖子我#1的说明。
宝_爸 2015-01-30
  • 打赏
  • 举报
回复
调用C/C++不是得用 platform invoke吗? 难道你用的是managed C++?
三楼の郎 2015-01-30
  • 打赏
  • 举报
回复
obj.Test(arr)

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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