关于delphi在DLL中使用TStyleManager加载皮肤ListView的问题

这篇博客讲述了作者在Delphi的DLL项目中遇到的一个问题,即当在DLL窗体中使用TStyleManager加载ListView皮肤时,程序在退出时会崩溃。不使用皮肤则一切正常。通过添加异常处理,作者暂时解决了这个问题,但对为什么会崩溃的原因感到困惑。目前程序运行正常,但作者仍然处于困惑和郁闷之中。
摘要由CSDN通过智能技术生成

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;
函数,上面的函数是我自己调试的时候修改过的,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值