平时调试VB程序较少,今跟踪一个VB6的程序的算法,遇到__vbaVarCmpLt和rtcRightCharVar的用法,试着输入不同的参数进去,也没弄明白参数是如何传的,比较之后的数值入在哪儿,请高手指点一下!!
以下是先从字串中从后提取5个字符,跟8003进行对比的代码,尤其奇怪的是,好象与rtcRightCharVar返回的0008比较,怎么会这样??
00E9731B . 6A 05 push 5
00E9731D . 8D95 28FFFFFF lea edx, dword ptr [ebp-D8]
00E97323 . 51 push ecx
00E97324 . 52 push edx
00E97325 . C785 00FFFFFF>mov dword ptr [ebp-100], 0F7F6
00E9732F . C785 F8FEFFFF>mov dword ptr [ebp-108], 8003 ; 参数2
00E97339 . FF15 CC114000 call dword ptr [<&MSVBVM60.#619>] ; MSVBVM60.rtcRightCharVar
00E9733F . 8B3D 74114000 mov edi, dword ptr [<&MSVBVM60.__vbaVarCmpL>; 比较1
00E97345 . 8D85 E8FEFFFF lea eax, dword ptr [ebp-118] ; 0B
00E9734B . 8D8D 78FFFFFF lea ecx, dword ptr [ebp-88] ; 字串1返回值,008,从rtcRightCharVar而来?
00E97351 . 50 push eax
00E97352 . 8D95 F8FEFFFF lea edx, dword ptr [ebp-108] ; 8003
00E97358 . 51 push ecx
00E97359 . 8D85 68FFFFFF lea eax, dword ptr [ebp-98] ; 0,二进制比较 ??
00E9735F . 52 push edx
00E97360 . 50 push eax
00E97361 . C785 E0FEFFFF>mov dword ptr [ebp-120], 6795
00E9736B . C785 D8FEFFFF>mov dword ptr [ebp-128], 8002
00E97375 . FFD7 call edi ; <&MSVBVM60.__vbaVarCmpLt>
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!