DLL中的窗体嵌入到主程序的Panel中,一旦使用皮肤后,退出过程中程序全面崩溃,不使用皮肤没有任何的问题,不知道为什么,想着死马当着活马医,找到关键点,加上异常处理算了,自己水平可能有问题,调试到最后竟然跟踪到System.Classes单元的
{ Standard window procedure }
function StdWndProc(Window: HWND; Message: UINT; WParam: WPARAM; LParam: WPARAM): LRESULT; stdcall;
{$IF Defined(CPUX86)}
{ In ECX = Address of method pointer }
{ Out EAX = Result }
var
i,z,a:Integer ;
asm
XOR EAX,EAX
PUSH EAX
PUSH LParam
PUSH WParam
PUSH Message
MOV EDX,ESP
MOV EAX,[ECX].Longint[4]
PUSH EBX
MOV EBX,[ECX].Pointer
MOV I,EBX
MOV Z,ECX
MOV a,EAX
POP EBX
CMP [ECX].Pointer,0
JE @j
CALL [ECX].Pointer
@j:
ADD ESP,12
POP EAX
end;
函数,上面的函数是我自己调试的时候修改过的,