VC写的DLL里参数为结构体数组,在VB中如何引用
VC写的DLL里参数为结构体数组,在VB中怎么引用啊
VC写的DLL里参数为结构体数组,在VB中怎么引用啊
VC函数short __stdcall MC_DownloadRoomData(short roomCnt, ROOM_INFO *roomList);
roomList -- ROOM_INFO型数组,依次存放多个数据。
我在VB中声明时
Public Declare Function MC_DownloadRoomData Lib "YXMakeCard.dll" (ByVal roomCnt As Integer, ByRef roomList As ROOM_INFO) As Integer
在窗口调用时
Dim RoomInfo() As ROOM_INFO
Dim iCnt As Integer
iCnt = 1
Erase RoomInfo
ReDim RoomInfo(100)
RoomInfo(0).RoomName = "firstRoom"
RoomInfo(0).RoomNo = "001.001.001"
RoomInfo(0).Flags = 1
RoomInfo(0).RFU = "REMARK"
Dim Inis As Long
For index = 1 To 99
appName = "ROOM"
strTemp = GetStr(3, index)
keyName = "room" + strTemp
Inis = GetPrivateProfileString(appName, keyName, 22, dstString, 256, App.Path + "\RoomData.ini")
If Mid(dstString, 1, 2) <> "22" Then
RoomInfo(index).RoomNo = dstString
RoomInfo(index).Flags = 1
RoomInfo(index).RFU = "REMARK"
RoomInfo(index).RoomName = keyName
iCnt = iCnt + 1
End If
Next
st = MC_DownloadRoomData(iCnt, RoomInfo(0))
这时实际得到的却只有第一个数据,不知道该如何处理
------解决方案--------------------
ByRef roomList() As ROOM_INFO'这个才是数组。
------解决方案--------------------
st = MC_DownloadRoomData(iCnt, addressof RoomInfo(0))
这个用过没有?
vb的数组和c的数组不同.c的数组地址是第一个元素的地址,vb的不是这样,vb的数组是一个结构,结构里面的一个元素指向第一个元素.
VC写的DLL里参数为结构体数组,在VB中怎么引用啊
VC函数short __stdcall MC_DownloadRoomData(short roomCnt, ROOM_INFO *roomList);
roomList -- ROOM_INFO型数组,依次存放多个数据。
我在VB中声明时
Public Declare Function MC_DownloadRoomData Lib "YXMakeCard.dll" (ByVal roomCnt As Integer, ByRef roomList As ROOM_INFO) As Integer
在窗口调用时
Dim RoomInfo() As ROOM_INFO
Dim iCnt As Integer
iCnt = 1
Erase RoomInfo
ReDim RoomInfo(100)
RoomInfo(0).RoomName = "firstRoom"
RoomInfo(0).RoomNo = "001.001.001"
RoomInfo(0).Flags = 1
RoomInfo(0).RFU = "REMARK"
Dim Inis As Long
For index = 1 To 99
appName = "ROOM"
strTemp = GetStr(3, index)
keyName = "room" + strTemp
Inis = GetPrivateProfileString(appName, keyName, 22, dstString, 256, App.Path + "\RoomData.ini")
If Mid(dstString, 1, 2) <> "22" Then
RoomInfo(index).RoomNo = dstString
RoomInfo(index).Flags = 1
RoomInfo(index).RFU = "REMARK"
RoomInfo(index).RoomName = keyName
iCnt = iCnt + 1
End If
Next
st = MC_DownloadRoomData(iCnt, RoomInfo(0))
这时实际得到的却只有第一个数据,不知道该如何处理
------解决方案--------------------
ByRef roomList() As ROOM_INFO'这个才是数组。
------解决方案--------------------
st = MC_DownloadRoomData(iCnt, addressof RoomInfo(0))
这个用过没有?
vb的数组和c的数组不同.c的数组地址是第一个元素的地址,vb的不是这样,vb的数组是一个结构,结构里面的一个元素指向第一个元素.