是VB中的错还是VC中的错?

fakir 2000-03-28 10:49:00
在VC的Dll中,数据和涵数定义如下:
typedef struct tag_TSP_COMMANDFIELD
{
UCHAR commandcode : 6;
UCHAR morebit : 1;
UCHAR lengthbit : 1;
} TSP_COMMANDFIELD;

typedef struct tag_TSP_COMMAND
{
union
{
UCHAR codefield;
TSP_COMMANDFIELD codefieldunion;
};
UCHAR datalength;
UCHAR data[255];
} TSP_COMMAND;

//输出涵数定义:
TONGSP_API BOOL TSP_OpenCommunication( TSP_COMMAND pCommand );

我需要在VB中调用该Dll,在VB中数据定义和涵数声明与调用如下:

'数据定义
Public Type TSP_COMMAND
tsp_commandfield As Byte
datalength As Byte
data(255) As Byte
End Type
'涵数声明
Declare Function TSP_OpenCommunication lib "TongSP.dll" (ByRef pCommand As TSP_COMMAND) As Boolean

'涵数调用
dim pComm as TSP_COMMAND

pComm.tsp_commandfield = &H25
pComm.datalength=&H08

TSP_OpenCommunication pComm '涵数调用

但是在此调用时,出现错误“Bad Dll calling convertion”
请问诸位:到底错在哪儿,是VB中的错还是VC中的错?我应该如何处理?


...全文
87 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Un1 2000-03-28
  • 打赏
  • 举报
回复
应该是VC的问题,申明为:

long __stdcall TSP_OpenCommunication(TSP_COMMAND *p)、

试一下。
haihong 2000-03-28
  • 打赏
  • 举报
回复
好象vc中应该用pascal调用

7,759

社区成员

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

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