Dynamiczne dołączanie bibliotek

0

http://4programmers.net/view_faq.html?id=127
Hmm jak zrobić aby kod
function RegisterServiceProcess(dwProcessId,dwType:dword):
Integer;stdcall;external 'kernel32.dll'
na innych windowsach niz 9x sie nie wykonywał ?? Adam napisał coś o dynamicznym ładowaniu kernel32.dll ale jak to zrobić ? z góry dzieki za pomoc

0

Tu masz kod dynamicznego wywoływania procedury z biblioteki - kilka przeróbek i bedzie ci działało.

procedure TMainForm.DynamicLoadBtnClick(Sender: TObject);
type
  TSayHello = procedure(AForm : TForm);
var
  DLLInstance : THandle;
  SayHello    : TSayHello;
begin
  { Load the DLL. }
  DLLInstance := LoadLibrary('DynLoad.dll');
  { If loading fails then bail out. }
  if DLLInstance = 0 then begin
    MessageDlg('Unable to load DLL.', mtError, [mbOK], 0);
    Exit;
  end;
  { Assign the procedure pointer. }
  @SayHello := GetProcAddress(DLLInstance, 'SayHelloDyn');
  { If the procedure was found then call it. }
  if @SayHello <> nil then
    SayHello(Self)
  else
    MessageDlg('Unable to locate procedure.', mtError, [mbOK], 0);
  { Unload the DLL. }
  FreeLibrary(DLLInstance);
end;
0

Dzieki bardzo juz wszystko dziala !! THX

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.