VB和ATL联合编成的问题?

sky 2003-06-30 11:16:49
请问:
想要在VC中用ATL做一个DLL,然后在VB中加为部件,然后可以直接调用此ATL中的方法.
此ATL主要是要实现串口的初始化,数据打包,发送和接收功能.
要想实现此功能,是用串口控件好,还是用API好.
有没有哪位有实践的经验,非常感谢了!
在ATL定义了一个方法如下:

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中的指针将这两个数组中的内容进行副值和改变,为什么执行了之后还是无法改变呢,请教各位了?






...全文
20 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
protlb 2003-08-11
  • 打赏
  • 举报
回复
应该用(byte*dat_Input,byte *dat_Buf,short len_Input)吧!
不是指针,怎么传值进来呢?

然后调用的时候,采用
Call com_drv.fun_Comtest_Pack(datbuf, buf, 3)
xpf_2000 2003-07-10
  • 打赏
  • 举报
回复
做成控件用起来容易,做成API函数编起来容易一些,其实都一样。控件升级更容易一些。
submit 2003-07-09
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1893/1893746.xml?temp=.15086
不知道对你有没有用
sky 2003-06-30
  • 打赏
  • 举报
回复
就没有人懂吗!!!!!!!!!!

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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