Alternativ:
I.d.R. hat man zwei verschiedene Environment Variablen zur Verfügung, Beispiel %ProgramFiles% und %ProgramFiles(x86)%, öffne ein Kommandprompt und tippe "SET" ein + Return drücken, da werden dir alle aufgelistet, nun such Dir eine Variable aus die es auch mit (x86) gibt und kopiere dort deine
dll rein, also in (x86) die 32bit usw. Dann kannst Du in Deinem Programm wie gewünscht darauf zugreifen.
Achja, generell kann man auch System32 und SysWOW64 verzeichnisse benutzen, in letzteres kommt die 32bit
dll rein.
Wenn Du LoadLibrary() aufrufst wählt Windows automatisch die Richtige, ohne Pfadangabe.
Diese Funktion hier kannst Du benutzen um aus ExpandFileName('Library.dll') = 'X:\PFAD\Library.dll' zu machen (sofern Library.dll irgendwo findbar ist)
Delphi-Quellcode:
//function GetFullPathName(lpFileName: PChar; nBufferLength: DWORD; lpBuffer: PChar; var lpFilePart: PChar): DWORD; stdcall;
//function GetFullPathName; external kernel32 name 'GetFullPathNameA';
function ExpandFileName(const FileName: string): string;
var
FName: PChar;
Buffer: array[0..MAX_PATH - 1] of Char;
begin
SetString(Result, Buffer, GetFullPathName(PChar(FileName), SizeOf(Buffer), Buffer, FName));
end;
ACHTUNG!!!!
Unbedingt vorher in Deiner Windows.pas Datei gucken ob der
function GetFullPathName(lpFileName: PChar; nBufferLength: DWORD; lpBuffer: PChar; var lpFilePart: PChar): DWORD; stdcall;
Aufruf so definiert ist, ansonsten meinen Source anpassen!!!
PS: Diese Funktion liefert so wie sie da steht nur den ersten Treffer wieder, mehr zeigt sie nicht.
Du kannst sie einfach umprogrammieren um eine TStringList o.ä. als Result zu erhalten wo alle Treffer auf den Suchbegriff drinnen stehen, falls Du da Hilfe brauchst sag Bescheid.