![]() |
JwaUnits unter FPC
hi
hat jemand schonmal die jwaXXX Units unter FreePascal getestet? (DelphiSyntax) Wenn ich jwaWinBase einbinde und das Programm starte, dann bekomme ich den Fehler 313: Zitat:
Delphi-Quellcode:
Was kann man da tun?
program MyTest1;
uses jwaWinType, jwaNTStatus, jwaWinNT, jwaWinBase; //fehler BEGIN writeln('test'); END. thx |
Re: JwaUnits unter FPC
Zitat:
|
Re: JwaUnits unter FPC
FCP kann im Moment noch kein 64bit Code erzeugen (zumindest nicht die stable).
Aber es ist auch keine 64bit Variante. Das Problem liegt aber darin, dass FPC nicht dynamisch linken kann und die Funktionen daher nicht gefunden werden. die jwa units kann man jedoch auch statisch linken. Jedoch habe ich danach, dasselbe Problem mit NtCreateChannel. Die werden jedoch immer mit extern 'ntdll.dll' gelinkt. Ein Fall für Olli - wo bist du ;-) |
Re: JwaUnits unter FPC
*push*
|
Re: JwaUnits unter FPC
Ich habs gesehen. :warn: Das waren erst 13 Stunden ud 26 Minuten. :mrgreen:
|
Re: JwaUnits unter FPC
Schon mal in der
![]() 5 Sekunden Google-Suche hilft manchmal :???: |
Re: JwaUnits unter FPC
Zitat:
Mhh, ich muss wohl Oliver da mal aufn Keks gehen. |
Re: JwaUnits unter FPC
Zitat:
auch nur dann, wenn sie vorhanden sind. OMG. Wenn FPC nur statisch laden kann, dann würde es bedeuten, dass FPC die jwaUnits nicht verwenden kann? Ich schau weiter nach. |
Re: JwaUnits unter FPC
Zitat:
|
Re: JwaUnits unter FPC
FPC verwendet mehrere Jwa und Jcl Units. Hier duerften wir das uebliche Problem vieler der Konversionen haben. Windows hat das API mit den Versionen erweitert und die Konversion ist fuer eine spaetere Version des APIs. Das gibt uebrigens auch manchmal Probleme zwischen Delphi und aelteren BCB-Versionen. Dort sind naturgemaess aeltere C Header von Microsoft lizensiert und das kann zu Inkompatibilitaeten fuehren (mein SetupApi.pas ist da ein Beispiel).
|
Re: JwaUnits unter FPC
Zitat:
Ich habe gesehn, dass Jwa die Funktionen auch dynamisch per GetProcAdress laden kann. Die Direktive dafür ist "DYNAMIC_LINK". Leider gibt es noch 3 Fehler in jwaWinBase und jwaWinType: GetModuleHandle LoadLibrary GetProcAddress Der Compiler meckert, dass diese Funktionen bereits mit denselben Parametern überladen wurden. Diese Funktionen sind in jwaWinBase und jwaWinType deklariert. Kommentiert man diese durch {$IFNDEF DYNAMIC_LINK}...{$ENDIF} aus, so lässt es sich kompilieren. Ich habe nun die Units unter FPC IDE und unter Lazarus kompiliert, wobei ich für Lazarus den neusten FPC verwendet habe. Unter FPC Compilereinstellungen kann man die Kompilerdirektive DYNAMIC_LINK direkt setzen. Unter Lazarus muss man dazu einen Umweg machen, da die Programmierer die direkte Eingabe für die Kompilerdirektiven in den Einstellungen vergessen haben (zumindest half Suchen nichts). Also: Menü Projekt -> Compilereinstellungen -> Tab "Andere" -> Edit "Benutzerdefinierte Einstellungen" : Zitat:
Mehrere Direktiven müssen jedesmal gesondert angegeben werden: Zitat:
|
Re: JwaUnits unter FPC
Wenn die Funktionen in JwaWinType und JwaWinType vorhanden sind, dann sind sie auch in den Originalfiles von Windows. Da ist der C Compiler halt sehr viel nachgiebiger.
Vielleicht starten wir ja eine Wiederbelebung der Jedi-Apilib. Die letzte Aktion ist in die Hose gegangen. Wir wollten ein JwaWindows.pas machen, aber das includen und die IFDEFs dazu haben den Delphi-Compiler ueberfordert. |
Re: JwaUnits unter FPC
Zitat:
|
Re: JwaUnits unter FPC
Dem C Compiler ist es weitgehend schnurz ob er eine Funktionsdeklaration einmal oder mehrmals bekommt. Solche Doppeldeklarationen kommen also gelegentlich vor. Winbase.h und WinType.h sind sowieso nicht wirklich eigenstaendig. Man benutzt sie durch windows.h. Delphi hat aber etwas gegen solche Doppeldeklarationen. Da ist die Sprache halt anders.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz