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.