Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Windows API in FreePascal (https://www.delphipraxis.net/47337-windows-api-freepascal.html)

JayK 9. Jun 2005 15:57


Windows API in FreePascal
 
Hallo,
wie kann ich die Windows-API in Free Pascal benutzen?
Ich was für einer Unit oder so stehen die denn?
Die FPC-Hilfe finde ich generell recht dürfig :(

Schonmal Danke im voraus,
JayK

Interceptor 9. Jun 2005 16:23

Re: Windows API in FreePascal
 
Die WinAPI steht in keiner Unit drin, sie ist Bestandteil deines Windows-Betriebssystems. Wenn sie es tun würde, dann würde diese Unit lediglich als Wrapper fungieren.

In FreePascal sollte die WinAPI genauso ansprechbar sein wie in Delphi.

JayK 9. Jun 2005 17:40

Re: Windows API in FreePascal
 
Wenn ich in Freepascal ein Programm habe, wo folgendes drinsteht:
Delphi-Quellcode:
program RIC;

{$APPTYPE Console}

uses
  Windows;

begin
  WriteLn('Aktualisiere Icon Cache...');
  try
    SHChangeNotify(SCHNE_ASSOSCHANGED, SHCNF_IDLIST, nil, nil);
  except
    WriteLn('Fehler beim Aktualisieren!');
end;
end.
dann kommt als Fehlermeldung:
Zitat:

Zitat von FPC
Error: Identifier not found "SHCNE_ASSOCCHANGED"
Error: Identifier not found "SHCNF_IDLIST"


Luckie 9. Jun 2005 17:50

Re: Windows API in FreePascal
 
Dann wird das in der Unit Window snicht deklariert sein und du wirst es dir selbst deklarieren müssen. Allerdings bräuchstest du dann die nötigen C-Header-Dateien. Die sind entweder beim PSDK dabei oder beim VC.

JayK 9. Jun 2005 18:05

Re: Windows API in FreePascal
 
Zitat:

Zitat von Luckie
Dann wird das in der Unit Window snicht deklariert sein und du wirst es dir selbst deklarieren müssen. Allerdings bräuchstest du dann die nötigen C-Header-Dateien. Die sind entweder beim PSDK dabei oder beim VC.

Das ist ja doof :( kann es nich sein, dass die in einer Anderen Unit drinstehen? (bitte, bitte!)

mirage228 9. Jun 2005 18:09

Re: Windows API in FreePascal
 
Hi,

für SHChangeNotify brauchst Du imho die Units Delphi-Referenz durchsuchenShellAPI und/oder Delphi-Referenz durchsuchenShlObj

mfG
mirage228

JayK 9. Jun 2005 18:24

Re: Windows API in FreePascal
 
Zitat:

Zitat von mirage228
für SHChangeNotify brauchst Du imho die Units Delphi-Referenz durchsuchenShellAPI und/oder Delphi-Referenz durchsuchenShlObj

Schon klar, unter Delphi :roll:
Aber wie bindet man deren Äquivalente unter FP ein? Im Ordner Units gibbet zwei Dateien im Unterverzeichnis WinUnits glaub ich, die heißen: shellapi.o und shlobj.o
Aber was kann wer schon mit o-Dateien Anfangen :gruebel: :wall: :coder2:

PS. woher hast du den [oh]-Tag? Für die Delphi-Hilfe?

JayK 9. Jun 2005 19:43

Re: Windows API in FreePascal
 
Ich habe mir jetzt diese beiden API-Variablen (Die Prozendur kannte er ja dann wieder :firejump: ) herbeigeschummelt: Ich habs in Delphi geproggt und die Variablen dort per ShowMessage() ausgeben lassen (IntToStr(APIVariable)). Das ist aber ziemlich Umständlich für jede einzelne API-Variable :wall: ...
Oder ich müsste mir 'ne Unit als Sammlung schreiben :gruebel:
Muss ich noch die Option "Bibliothekspfade" oder sowas in Freepascal suchen.

Naaaaaa toll!!!

Grüße,
JayK

Chewie 9. Jun 2005 19:46

Re: Windows API in FreePascal
 
Nimm doch mal die WInAPI-Übersetzungen der Jedis her. Jag sie durch den Compiler und änder evtl. das, was sich compilieren lässt, ab.

Olli 9. Jun 2005 20:52

Re: Windows API in FreePascal
 
Zitat:

Zitat von Chewie
Nimm doch mal die WInAPI-Übersetzungen der Jedis her. Jag sie durch den Compiler und änder evtl. das, was sich compilieren lässt, ab.

Wir sind gerade dabei FPC-Kompatibilität herzustellen. Es ist aber garantiert noch nicht komplett kompatibel.

http://sourceforge.net/projects/jedi-apilib/


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz