Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Pfad prüfen - 32/64bit DLL

  Alt 7. Mai 2018, 18:36
Hats geklappt?

edit
Vielleicht wäre es Sinnvoller seine Dlls umzubenennen um es dann vom OSVersion 32/64 abhängig zu machen?
Also xyz32.dll und xyz64.dll, beide in ein Verzeichnis, und per OS Abfrage die entsprechende laden lassen und später auch wieder freigeben, die Eigentlichen dll calls sollten ja gleich sein.
Ps: Bei dieser Methode, so glaube ich, sollte auch so etwas möglich sein - pseudo code
Delphi-Quellcode:
//da wo code initialisiert wird so etwas einfügen
if osversion = 64bit then {$define x64} else {$define x32}

//überall wo benötigt über ifdefs gehen, so in etwa
{$ifdef x32}
// 32bit code hier einfügen
{$endif}
{$ifdef x64}
// 64bit code hier einfügen
{$endif}
edit
nicht osversion, sowas hier meinte ich
Delphi-Quellcode:
class function TOSInfo.IsWOW64: Boolean;
type
  TIsWow64Process = function( // Type of IsWow64Process API fn
    Handle: THandle;
    var Res: BOOL
  ): BOOL; stdcall;
var
  IsWow64Result: BOOL; // result from IsWow64Process
  IsWow64Process: TIsWow64Process; // IsWow64Process fn reference
begin
  // Try to load required function from kernel32
  IsWow64Process := GetProcAddress(
    GetModuleHandle('kernel32'), 'IsWow64Process'
  );
  if Assigned(IsWow64Process) then
  begin
    // Function is implemented: call it
    if not IsWow64Process(GetCurrentProcess, IsWow64Result) then
      raise Exception.Create('Bad process handle');
    // Return result of function
    Result := IsWow64Result;
  end
  else
    // Function not implemented: can't be running on Wow64
    Result := False;
end;
damit ermitteln ob man im 64bit modus ist und dementsprechend die {$Define} parameter setzen.
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 7. Mai 2018 um 19:25 Uhr)
  Mit Zitat antworten Zitat