Autor Beitrag
sperman41
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 19.08.08 22:07 
Hallo Leute!

Ich stehe vor nem kleinen Problem.
Und zwar möchte ich eine Funktion dynamisch laden.
Wozu ich das brauch? Eigentlich gar nicht, ist ja auch nicht zwingend notwendig.
Dennoch interessiert es mich.
Habe auch paar kleine Tutorials durchgearbeitet und es klappt wunderbar.
Jedoch sind das sehr simple Beispiele.

Wie müsste oder könnte der Code aussehen, um diese Funktion dynamisch zu laden?
ausblenden Delphi-Quelltext
1:
Function VirtualProtectEx(hProcess: HANDLE; lpAddress: LPVOID; dwSize: SIZE_T; flNewProtect: DWORD; var lpflOldProtect: DWORD): BOOL; stdcallexternal 'kernel32.dll' name 'VirtualProtectEx';					

Natürlich nur wenns nicht zuviel Mühe macht.
Ich denke, dann würde ich es endlich kapieren

Danke

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19276
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 19.08.08 22:46 
Hallo und :welcome: ;-)

wwwswt.informatik.un...chnittstellen.html#8 ;-)

// EDIT:
Na, ich hab kurz Zeit:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
type
  TVirtualProtectEx = function(hProcess: HANDLE; lpAddress: LPVOID; dwSize: SIZE_T; flNewProtect: DWORD; var lpflOldProtect: DWORD): BOOL; stdcall;


var
  MyVirtualProtectEx: TVirtualProtectEx;
  MyDLLHandle: THandle;
begin
  MyDLLHandle := LoadLibrary('kernel32.dll');

  if MyDLLHandle <> 0 then
  begin
    @MyVirtualProtectEx := GetProcAddress(MyDLLHandle, 'VirtualProtectEx');
    if @MyVirtualProtectEx <> nil then
    begin
      ergebnis := MyVirtualProtectEx(...);
      // ...
    end
    else
      ShowMessage('Fehler');
    FreeLibrary(MyDLLHandle);
  end
  else
    ShowMessage('Fehler');
end;
// EDIT2:
Mitkopierte Tippfehler korrigiert...


Zuletzt bearbeitet von jaenicke am Mi 20.08.08 05:18, insgesamt 2-mal bearbeitet
sperman41 Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mi 20.08.08 01:46 
Vielen Dank erstmal!

Ich bekomme zig kompilierungsfehler.
Unter anderem undefinierte Bezeichner für : Loadlibary, Freelibary, Showmessage

Es heisst doch LibRary oder?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19276
Erhaltene Danke: 1741

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 20.08.08 05:17 
Heißt es, ich hab das Beispiel kopiert und nicht weiter nachgeschaut... :oops:

Jedenfalls sollten die benötigten Units eigentlich bei einem normalen Formular bereits eingebunden sein, das ist für LoadLibrary und FreeLibrary (habs auch korrigiert im geposteten Beispiel) die Unit Windows und für ShowMessage Dialogs.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 20.08.08 09:17 
Wir diskutieren übrigens wieder an zwei Stellen: www.delphipraxis.net...dynamisch+laden.html :roll: