本帖最后由 kevinch 于 2011-8-17 09:05 编辑
如题,在vba6.dll中有一个rtcTypeName函数(序号:591),可以返回变量的类型,想在au3中进行调用,但一直不成功,希望高手帮忙一下。
VB中的函数原型:Public Function TypeName(ByVal VarName As Object) As String
Dll代码入口处汇编代码:rtcTypeName ;函数 TypeName #591
LEA EDX,DWORD PTR SS:[EBP-24]
PUSH EDX ;参数1
CALL DWORD PTR DS:[<&MSVBVM60.#591>];MSVBVM60.rtcTypeName
;结果在eax中返回
我个人写的测试程序代码:$o_excel=ObjCreate("excel.application")
$o_excel.visible=True
$o_WB=$o_excel.workbooks.add
$T=DllCall(@ScriptDir&"\vba6.dll","str",591,这里要用什么数据类型,这里如何表示$o_WB这个变量)
ConsoleWrite($T&@tab&@error&@CRLF)
以上相同功能代码在vb中可以返回数据类型"Workbook"
各位高手拜托了,就是不想用VB写这个程序,希望能用au3实现,这个typename功能对于目标程序很重要。
附:VBA6.dll |