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