我有不同意见,比如这样一个问题 vc 实现的DLL,接口中有一个结构体,结构体为 typedef struct{ unsigned int filter; unsigned int lis_on; unsigned int test; unsigned int sleep; unsigned int baud_rate; unsigned char code1; }PORT_STRUCT;函数调用为 int __stdcall CreateObjectofA1(PORT_STRUCT stu_packet);VB中调用 以下是我的声明 public Type CAN_PACKET can_part1 As Long can_part2 As Long can_part3 As Long can_part4 As Long can_part5 As Long can_part6 As String End TypeDeclare Function CreateObjectofA1 Lib "StructTst.dll" (ByRef can_partStr As CAN_PACKET) As Long调用为Private Sub Command1_Click() Dim cpart1 As CAN_PACKET Dim t1 As Integer cpart1.can_part1 = 0 cpart1.can_part2 = 1 cpart1.can_part3 = 2 cpart1.can_part4 = 3 cpart1.can_part5 = 4 cpart1.can_part6 = 5 t1 = CreateObjectofA1(cpart1)End Sub提示为byref argument type mismatch这样的情况真的是没有办法
在VC,.NET,Java,asp 皆是
vc 实现的DLL,接口中有一个结构体,结构体为
typedef struct{
unsigned int filter;
unsigned int lis_on;
unsigned int test;
unsigned int sleep;
unsigned int baud_rate;
unsigned char code1;
}PORT_STRUCT;函数调用为
int __stdcall CreateObjectofA1(PORT_STRUCT stu_packet);VB中调用
以下是我的声明
public Type CAN_PACKET
can_part1 As Long
can_part2 As Long
can_part3 As Long
can_part4 As Long
can_part5 As Long
can_part6 As String
End TypeDeclare Function CreateObjectofA1 Lib "StructTst.dll" (ByRef can_partStr As CAN_PACKET) As Long调用为Private Sub Command1_Click()
Dim cpart1 As CAN_PACKET
Dim t1 As Integer
cpart1.can_part1 = 0
cpart1.can_part2 = 1
cpart1.can_part3 = 2
cpart1.can_part4 = 3
cpart1.can_part5 = 4
cpart1.can_part6 = 5
t1 = CreateObjectofA1(cpart1)End Sub提示为byref argument type mismatch这样的情况真的是没有办法