vb内嵌汇编学习心得
经过一段时间的学习,总算把vb的函数调用,以及类方法的压栈方式弄懂了。
虽然vb可以通过类型库定义接口方法,更方便,但是直接用vb的类的方式,调用函数指针也是可以的。网上有很多方法是通过callwindowproc那个回调函来实现vb使用函数指针。不过我实现了用vb嵌汇编来实现调用函数指针。
'IVBoost类模块
Public Function UAdd(ByVal x As Long, ByVal y As Long) As
Long
End Function
Public Function UDif(ByVal x As Long, ByVal y As Long) As
Long
End Function
Public Function CallLongReturnLong(ByVal pFn As Long, ByVal x As
Long) As Long
End Function
‘--------------------------
'VBoostImp.cls
Private mVBoost As IVBoost
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias
"RtlMoveMemory" ( _
Private ASM(300) As Long
Dim pTVable As Long
Private Sub Class_Initialize()
'UAdd
'
'
'
'
'
'
'
'
'------------------------
'
'
'
'
'
'
'
'
'
'-----------------------------
'
' CallLongReturnLong
'
'
'
'
'
'
'
'
'
'--------------------------
End Sub
Public Property Get VBoost() As IVBoost
End Property
Private Sub SetVTable(ByVal fn As Long, ByVal iOrder As Long)
End Sub
Private Function pFn(ByVal x As Long) As Long
End Function
'---------------------------
'使用
Dim VBoost As IVBoost
Dim VBoostImp As VBoostImp
Sub Main()
End Sub
Private Function Test(ByVal x As Long) As Long
End Function
浙公网安备 33010602011771号