vb调用dll:VB调用C DLL时的参数传递问题-vb教程



须了解此在C中原型包括参数类型和传递方式

C DLL 原型         VB声明                 VB
 
 a              ByVal a as long        Call func(…,a,…)
long a             ByRef a as long        Call func(…,byval a,…)
 *pa            ByRef pa as long       Call func(…,pa,…)
long *pa           ByVal pa as long       Call func(…,varptr(pa),…)   *(1)
char *pstr         ByVal pstr as    Call func(…,pstr,…)         *(2)
wchar *pstr        ByRef pstr as    Call func(…,byval pstr,…)
struct tagX *p     ByRef p as tagX        Call func(…,ptag,…)         *(3) 
HANDLE h           ByVal h as long        Call func(…,h,…)            *(4) 

注意   

1)不推荐使用此方式

2)如果DLL要求串缓冲区定要在化字串即dim t as  * 50

3)用户定义子类型必须用ByRef方式传递 

4)任何内核对象句柄(process, thread, module, file, filemapping, semaphore等)和大多数GDI对象句柄都能用此方式传递 


Tags:  java调用dll vb参数传递 vb如何调用dll vb调用dll

延伸阅读

最新评论

发表评论