关于VB的指针操作,大家给点意见,我不知道错没!

tyfun 2003-11-26 09:52:04
意图:
pDeliverResp 是由VC编写的SMGPDeliver函数中的指针
指向“
sMsgID As String
nIsReport As Integer
nMsgFormat As Integer
sRecvTime As String
sSrcrmID As String
sDestTermID As String
nMsgLen As Integer
sMsgContent As String

问:我怎么传pDeliverResp 和怎么得到“”内的值?


Private Declare Function SMGPDeliver Lib "SmGwAPI.dll" (ByVal nTimeout As Integer, ByRef pDeliverResp As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Type RecieveSM
sMsgID As String
nIsReport As Integer
nMsgFormat As Integer
sRecvTime As String
sSrcrmID As String
sDestTermID As String
nMsgLen As Integer
sMsgContent As String
End Type


过程程序块
Dim DataBuf(315) As Byte
Dim myMsg As RecieveSM
CopyMemory myMsg, DataBuf(0), LenB(myMsg)

ret = SMGPDeliver(GetTimeOut, VarPtr(DataBuf(0)))

End 过程程序块
...全文
23 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Maconel 2003-11-26
  • 打赏
  • 举报
回复
呵呵,不懂啊,也想学,帮你up
tyfun 2003-11-26
  • 打赏
  • 举报
回复
老大们
帮我看看啊
tyfun 2003-11-26
  • 打赏
  • 举报
回复
根据上面我给的代码
我这样写的过程块
你看对吗?

'接收
Public Sub Recieve(Server As String, UID As String, _
PWD As String, DataBase As String)

Dim DataBuf(315) As Byte
Dim myMsg As RecieveSM
CopyMemory myMsg, DataBuf(0), LenB(myMsg)

ret = SMGPDeliver(GetTimeOut, DataBuf(0))

'MsgBox ret, vbApplicationModal

'CopyMemory ByVal str1, ByVal myMsg.sMsgID, LenB(str1)

If ret = 0 Then
Set conn = CreateObject("ADODB.Connection")
Dim str As String
str = "DRIVER={SQL Server};server=" & Server & ";uid=" & UID & ";pwd=" & PWD & ";database=" & DataBase
conn.Open str
SQL = "insert into SMGPDeliver(sMsgID,nIsReport,nMsgFormat,sRecvTime,sSrcrmID," & _
"sDestTermID,nMsgLen,sMsgContent) values('" & myMsg.sMsgID & "'," & _
myMsg.nIsReport & "," & myMsg.nMsgFormat & ",'" & myMsg.sRecvTime & "','" & _
myMsg.sSrcrmID & "','" & myMsg.sDestTermID & "'," & myMsg.nMsgLen & ",'" & _
myMsg.sMsgContent & "')"
conn.Execute SQL
RecordLog "Recv.log", "sMsgID:" & myMsg.sMsgID & "接收成功!"
conn.Close
Set conn = Nothing
Else
RecordLog "Recv.log", "sMsgID:" & myMsg.sMsgID & "接收失败!"
End If

End Sub
tyfun 2003-11-26
  • 打赏
  • 举报
回复
老大们看看
我用myMsg.nMsgFormat这样来接收对不对?

7,732

社区成员

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

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