首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

vb中数组地址传递的有关问题

2012-01-14 
vb中数组地址传递的问题,请教各位在VC中,调用dll的函数说明及调用过程如下:typedefint(PASCAL*pgetname)(B

vb中数组地址传递的问题,请教各位
在VC中,调用dll的函数说明及调用过程如下:
typedef   int   (PASCAL   *pgetname)(BYTE   *buf);
typedef   int   (PASCAL   *pUCmmand1)(BYTE   *pcmd,int   *p1,int   *p2,int   *p3);

pUCmmand1mygetcard;
pgetname                 myget;
void   CReadCardDlg::OnTimer(UINT   nIDEvent)  
{  
BYTE   cmd;
int     parg0,parg1,parg2;
parg0=1;
parg1=8811;
parg2=9986;
cmd=0x43;
int   z=mygetcard(&cmd,&parg0,&parg1,&parg2);
if(z==62171)
{
parg0=1;
cmd=0x44;
parg1=8811;
char   *x;
x= "c:\\mycard ";
int   p[20];
memcpy(p,x,10);
mygetcard(&cmd,&parg0,&parg1,p);
        myget(buffer);        
AfxMessageBox((char   *)buffer);

}
        CDialog::OnTimer(nIDEvent);
}  

以上调用如何用vb来实现?主要是下边的字符串地址传递问题,请教各位高手.



[解决办法]
BYTE *声明成Byval As String就可以了
[解决办法]
也可以声明为byref buf as byte,然后传递buf的第1个元素
[解决办法]
dim data(1000) as byte
传递data(0)的地址byval VarPtr(data(0))
result = UCommand1(68, 1, 8811, byval VarPtr(data(0)))

热点排行