S
skyjacker
Unregistered / Unconfirmed
GUEST, unregistred user!
程序环境:
WindowsXp Sp2,D6, 使用TClientSocket,窗体上也有adoConnection
程序大体流程:
在Form的Create中 MyClientSocket.active;之后 Adoconnected.
问题代码如下:
procedure TMyMain.MyClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
var x:Integer;
begin
g_Linked := true; //全局变量 g_Linked
x:=10;
ShowMessage(IntToStr(x));
end;
说明:
Connect中如果有全局变量 g_Linked,则肯定会弹出 "无效的授权说明"。
没有 g_Linked则不会弹出。
运行中显示cpu窗口:
0048BE49 FF8B437833D2 dec dword ptr [ebx-$2dcc87bd]
//注:向上拖动显示cpu窗口滚动条后,此行会变。为什么?
//[ebx-$2dcc87bd] 这个值有点怪吧?
0048BE4F E85892F7FF call @WStrCmp
0048BE54 7412 jz +$12
0048BE56 8B4378 mov eax,[ebx+$78]
0048BE59 50 push eax
0048BE5A 8B436C mov eax,[ebx+$6c]
0048BE5D 50 push eax
0048BE5E 8B00 mov eax,[eax]
0048BE60 FF505C call dword ptr [eax+$5c]
0048BE63 E8E4A9F7FF call @CheckAutoResult
0048BE68 33C0 xor eax,eax
0048BE6A 5A pop edx
0048BE6B 59 pop ecx
0048BE6C 59 pop ecx
0048BE6D 648910 mov fs:[eax],edx
0048BE70 6885BE4800 push $0048be85
0048BE75 8D45FC lea eax,[ebp-$04]
0048BE78 E8DF8FF7FF call @WStrClr
0048BE7D C3 ret
0048BE7E E97181F7FF jmp @HandleFinally
0048BE83 EBF0 jmp -$10
0048BE85 5B pop ebx
0048BE86 59 pop ecx
0048BE87 5D pop ebp
0048BE88 C3 ret
0048BE89 8D4000 lea eax,[eax+$00]
0048BE8C 53 push ebx
0048BE8D 8BD8 mov ebx,eax
0048BE8F 837B6C00 cmp dword ptr [ebx+$6c],$00
0048BE93 7422 jz +$22
继续说明
0048BE49 FF8B437833D2 dec dword ptr [ebx-$2dcc87bd]
//注:向上拖动显示cpu窗口滚动条后,此行会变。
再往上拖动,发现这些代码属于TAdoConnection.DoConnect的。
与TAdoConnection没什么关系吧?
可能本质上还是TAdoConnection的问题,只是巧合还是两个互相影响的问题?
WindowsXp Sp2,D6, 使用TClientSocket,窗体上也有adoConnection
程序大体流程:
在Form的Create中 MyClientSocket.active;之后 Adoconnected.
问题代码如下:
procedure TMyMain.MyClientSocketConnect(Sender: TObject;
Socket: TCustomWinSocket);
var x:Integer;
begin
g_Linked := true; //全局变量 g_Linked
x:=10;
ShowMessage(IntToStr(x));
end;
说明:
Connect中如果有全局变量 g_Linked,则肯定会弹出 "无效的授权说明"。
没有 g_Linked则不会弹出。
运行中显示cpu窗口:
0048BE49 FF8B437833D2 dec dword ptr [ebx-$2dcc87bd]
//注:向上拖动显示cpu窗口滚动条后,此行会变。为什么?
//[ebx-$2dcc87bd] 这个值有点怪吧?
0048BE4F E85892F7FF call @WStrCmp
0048BE54 7412 jz +$12
0048BE56 8B4378 mov eax,[ebx+$78]
0048BE59 50 push eax
0048BE5A 8B436C mov eax,[ebx+$6c]
0048BE5D 50 push eax
0048BE5E 8B00 mov eax,[eax]
0048BE60 FF505C call dword ptr [eax+$5c]
0048BE63 E8E4A9F7FF call @CheckAutoResult
0048BE68 33C0 xor eax,eax
0048BE6A 5A pop edx
0048BE6B 59 pop ecx
0048BE6C 59 pop ecx
0048BE6D 648910 mov fs:[eax],edx
0048BE70 6885BE4800 push $0048be85
0048BE75 8D45FC lea eax,[ebp-$04]
0048BE78 E8DF8FF7FF call @WStrClr
0048BE7D C3 ret
0048BE7E E97181F7FF jmp @HandleFinally
0048BE83 EBF0 jmp -$10
0048BE85 5B pop ebx
0048BE86 59 pop ecx
0048BE87 5D pop ebp
0048BE88 C3 ret
0048BE89 8D4000 lea eax,[eax+$00]
0048BE8C 53 push ebx
0048BE8D 8BD8 mov ebx,eax
0048BE8F 837B6C00 cmp dword ptr [ebx+$6c],$00
0048BE93 7422 jz +$22
继续说明
0048BE49 FF8B437833D2 dec dword ptr [ebx-$2dcc87bd]
//注:向上拖动显示cpu窗口滚动条后,此行会变。
再往上拖动,发现这些代码属于TAdoConnection.DoConnect的。
与TAdoConnection没什么关系吧?
可能本质上还是TAdoConnection的问题,只是巧合还是两个互相影响的问题?