線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1030
推到 Plurk!
推到 Facebook!

DLL Callback

缺席
avex
初階會員


發表:19
回覆:49
積分:43
註冊:2003-03-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-28 09:09:45 IP:211.23.xxx.xxx 未訂閱
請問各位高手, 有個將 dll 包成 delphi component 過嗎? 要如何將 callback函數包成 'class' 裡面的 OnEvent function 呢(是 class, 不是flat-procedure喔)? 下面是我的一些組合語言, 不曉得是哪裡錯了, 可以OnEvent但離開時會Access Violation at 0x000000. 或者請問有什麼更容易的方法 ? function CreateStub(ObjectPtr: Pointer; MethodPtr: Pointer): Pointer; var Stub: ^TStub; begin // Allocate memory for the stub New(Stub); // Pop the return address off the stack Stub^.PopEDX := AsmPopEDX; // Push the object pointer on the stack Stub^.MovEAX := AsmMovEAX; Stub^.SelfPointer := ObjectPtr; Stub^.PushEAX := AsmPushEAX; // Push the return address back on the stack Stub^.PushEDX := AsmPushEDX; // Jump to the 'real' procedure, the method. Stub^.JmpShort := AsmJmpShort; Stub^.Displacement := (Integer(MethodPtr) - Integer(@(Stub^.JmpShort))) - (SizeOf(Stub^.JmpShort) SizeOf(Stub^.Displacement)); // Return a pointer to the stub Result := Stub; end;
系統時間:2024-05-04 8:32:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!