Вверх ↑
Ответов: 1841
Рейтинг: 369
#1: 2012-11-03 15:17:49 ЛС | профиль | цитата
Пытался прикрутить свою dll, но после объявления второй процедуры, компилятор отказывается компилировать аргументируя этим:
Error: Unsatisfied forward or external declaration: 'ThiInlineCode_288DD20.doGetProcessPID'
Хотя если убрать одну из процедур, с оставшейся процедурой компиляция проходит успешно
С чем это может быть связано?
iC

Add(InlineCode,12020246,70,112)
{
 WorkPoints=#19:doEnableDebugPrivNT|15:doGetProcessPID|
 EventPoints=#19:onEnableDebugPrivNT|15:onGetProcessPID|
 Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses Kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10:   private|0:|9:   public|36:     onEnableDebugPrivNT: THI_Event;|32:     onGetProcessPID: THI_Event;|5:     |59:     Procedure doEnableDebugPrivNT(var dt:TData; idx:Word);|55:     Procedure doGetProcessPID(var dt:TData; idx:Word);|7:   end;|0:|87:  //================Устанавливаем нашему процессу привелегии отладчика================ |93:  function EnableDebugPrivNT(aPrivilegeName: string): integer; stdcall; external 'crack.dll';|86:  function GH_GetProcessPID(ProcName: string): integer; stdcall; external 'crack.dll';|0:|14:implementation|0:|84://================Устанавливаем нашему процессу привелегии отладчика================|42:Procedure THiAsmClass.doEnableDebugPrivNT;|22:  var Result: integer;|7:  begin|52:    Result := EnableDebugPrivNT('SeDebugPrivilege');|45:    _hi_OnEvent(onEnableDebugPrivNT, Result);|6:  end;|4:end.|0:|38:Procedure THiAsmClass.doGetProcessPID;|22:  var Result: integer;|7:  begin|43:    Result := GH_GetProcessPID('aion.bin');|41:    _hi_OnEvent(onGetProcessPID, Result);|6:  end;|4:end.|
}
Код

unit HiAsmUnit;

interface

uses Kol,Share,Debug;

type
 THiAsmClass = class(TDebug)
   private

   public
     onEnableDebugPrivNT: THI_Event;
     onGetProcessPID: THI_Event;
     
     Procedure doEnableDebugPrivNT(var dt:TData; idx:Word);
     Procedure doGetProcessPID(var dt:TData; idx:Word);
   end;

  //================Устанавливаем нашему процессу привелегии отладчика================ 
  function EnableDebugPrivNT(aPrivilegeName: string): integer; stdcall; external 'crack.dll';
  function GH_GetProcessPID(ProcName: string): integer; stdcall; external 'crack.dll';

implementation

//================Устанавливаем нашему процессу привелегии отладчика================
Procedure THiAsmClass.doEnableDebugPrivNT;
  var Result: integer;
  begin
    Result := EnableDebugPrivNT('SeDebugPrivilege');
    _hi_OnEvent(onEnableDebugPrivNT, Result);
  end;
end.

Procedure THiAsmClass.doGetProcessPID;
  var Result: integer;
  begin
    Result := GH_GetProcessPID('aion.bin');
    _hi_OnEvent(onGetProcessPID, Result);
  end;
end.
//Компилятор - Delphi 4
карма: 1
0