VB和VC联合编程的问题

sky 2003-06-30 01:44:41
在VC中用ATL作了一个DLL,在其中声明了一个函数如下
STDMETHODIMP Ccla_Main::fun_Comtest_Pack(byte dat_Input,byte dat_Buf,short len_Input)
{
// TODO: Add your implementation code here
// TODO: Add your implementation code here

//此函数将以dat_Input的地址为首地址的len_Input为长度的byte变量付给以dat_Buf的地址为首地址的byte型数组
return S_OK;

在VB中调用的代码如下:
Dim datbuf(1 To 3) As Byte//声明一个容量为3的字节数组
Dim buf(1 To 7) As Byte//声明一个容量为7的字节数组
Call com_drv.fun_Comtest_Pack(datbuf(1), buf(1), 3)//com_drv是部件的名称

在VB中执行了此代码后发现DLL中的方法并不能改变buf数组中的值,为什么?
此函数的意思是在VB中声明两个字节数组,调用DLL中的方法fun_Comtest_Pack
通过VC中的指针将这两个数组中的内容进行副值和改变,为什么执行了之后还是无法改变呢,请教各位了?
...全文
35 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sky 2003-06-30
  • 打赏
  • 举报
回复
什么意思,能说得具体些吗?
icansaymyabc 2003-06-30
  • 打赏
  • 举报
回复
STDMETHODIMP Ccla_Main::fun_Comtest_Pack(byte &dat_Input,byte &dat_Buf,short &len_Input)
wangbm 2003-06-30
  • 打赏
  • 举报
回复
可以到类里面去调试。
hiker_lx 2003-06-30
  • 打赏
  • 举报
回复
在VB中申明该DLL时可以使用ByRef来申明他的参数。

7,763

社区成员

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

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