Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - INI Datei mit Pointer laden


bimbess - Sa 12.10.13 12:21
Titel: INI Datei mit Pointer laden
Hallo zusammen!

möchte mithilfe dieser Funktion eine ini Datei laden, Funktion ist in einer DLL hinterlegt:



Delphi-Quelltext
1:
2:
3:
4:
function irbg_LoadROIsByFile(SrcID:integer; FileName:PChar):integer;stdcall;
begin
   
end;


FileName: Pointer auf einen AnsiChar-Puffer der den Namen der INI-Datei inklusive des abschließenden Zeichen #0 enthält.

Kann mir einer bitte die genaue Deklaration von FileName erklären? Bin ungeübt in der Verwendung von Pointern....

Vielen Dank!

Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt


jaenicke - Sa 12.10.13 12:27

Hallo und :welcome: im Forum!

Bei der Deklaration hast du PChar statt wie du geschrieben hast PAnsiChar benutzt.

Deklarieren kannst du die Funktion statisch so:

Delphi-Quelltext
1:
function irbg_LoadROIsByFile(SrcID: Integer; AFileName: PAnsiChar): Integer; stdcallexternal 'example.dll';                    
Mehr dazu findest du hier:
http://delphi.about.com/od/windowsshellapi/a/delphi-dll-loading-static-dynamic.htm


WasWeißDennIch - Sa 12.10.13 12:29

Du kannst (seit Delphi 2) beim Aufruf einfach einen Cast auf einen bestehenden (Ansi)String machen.

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var
  Filename: Ansistring;
  SrcID, LoadResult: integer;
begin
  Filename := 'C:\Verzeichnis';
  SrcID := 42;
  LoadResult := irbg_LoadROIsByFile(SrcID, PAnsiChar(FileName));
end;