![]() |
Delphi-Version: XE3
Incompatible typen Fehler, wieso?
Ich habe in dieser Funktion
Delphi-Quellcode:
die Fehlermeldung
DeleteFile(varRecDir + StationRecDir + '\' + FileName);
Zitat:
Delphi-Quellcode:
funktioniert auch problemlos, aber nicht die DeleteFile-Funktion.
showmessage(varRecDir + StationRecDir + '\' + FileName);
Danke für jede Hilfe! P.S. das ganze passiert in Lazarus |
AW: Incompatible typen Fehler, wieso?
DeleteFile erwartet eben einen PChar-Parameter und keinen String.
Delphi-Quellcode:
DeleteFile(PChar(varRecDir + StationRecDir + '\' + FileName));
|
AW: Incompatible typen Fehler, wieso?
Jaa... in der Hilfe steht davon kein Wort, zumindest in der Lazarus Hilfe.
|
AW: Incompatible typen Fehler, wieso?
Aber es steht ja zumindest schon in der Fehlermeldung vom Compiler, die du gepostet hast. :wink:
|
AW: Incompatible typen Fehler, wieso?
Entweder du hast die sysutils nicht in deiner Usesanweisung oder die Windows-Unit nach diesem Eintrag so das dort die Version mit PChar verwendet wird.
|
AW: Incompatible typen Fehler, wieso?
Komisch ist irgendwie, daß in der Online-Hilfe die Typenbezeichner der "Strings" fehlen :gruebel:
![]() ![]() Aber ich möchte fast wetten, daß Lazarus es hier dem Delphi nachgemacht hat, womit es ebenfalls zwei Implementationen gibt. SysUtils (mit String) und Windows (mit PChar) Somit solltest du einfach mal aufpassen welche Version du verwendest. :stupid: [edit] Ups, nu hab'sch den armen Bernhard glatt übersehn. :oops: |
AW: Incompatible typen Fehler, wieso?
OK... verstehe...
Ich habe beide Uses eingebunden, die SysUtils und Windows, aber Lazarus besteht bei dieser Funktion auf PChar, wieso auch immer. Wird da etwa eine Uses bevorzugt? Wenn ja wie kann man das beeinflussen? Eigentlich ist es mir egal, ob PChar oder String, Hauptsache es ist alles unicodefähig. Und das ist es doch, oder? |
AW: Incompatible typen Fehler, wieso?
Ist doch schon alles weiter oben im Thread beantwortet.
|
AW: Incompatible typen Fehler, wieso?
Zitat:
Immer der Letzte. Außer man Bindes nur Eines von Beiden ein, oder gibt den gewünschten Namespace (hier die Unit) beim Aufruf mit an. Zitat:
Entweder du verwendest die "richtige" (gewünschte) Funktion, oder du passt den Parameter an (casten). Und kein, wenn du die Ansi-Version dieser API verwendest, dann nicht. |
AW: Incompatible typen Fehler, wieso?
OK, danke euch... habe wieder was gelernt!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 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