AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Incompatible typen Fehler, wieso?

Ein Thema von OrNEC · begonnen am 9. Aug 2014 · letzter Beitrag vom 10. Aug 2014
Antwort Antwort
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.224 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Incompatible typen Fehler, wieso?

  Alt 9. Aug 2014, 16:21
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#2

AW: Incompatible typen Fehler, wieso?

  Alt 9. Aug 2014, 17:41
Komisch ist irgendwie, daß in der Online-Hilfe die Typenbezeichner der "Strings" fehlen
http://lazarus-ccr.sourceforge.net/d...eletefile.html
http://lazarus-ccr.sourceforge.net/d...ilecreate.html

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.

[edit]
Ups, nu hab'sch den armen Bernhard glatt übersehn.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Incompatible typen Fehler, wieso?

  Alt 9. Aug 2014, 18:23
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?
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#4

AW: Incompatible typen Fehler, wieso?

  Alt 9. Aug 2014, 19:11
Ist doch schon alles weiter oben im Thread beantwortet.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#5

AW: Incompatible typen Fehler, wieso?

  Alt 9. Aug 2014, 20:05
Wird da etwa eine Uses bevorzugt? Wenn ja wie kann man das beeinflussen?
Natürlich.
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.

Eigentlich ist es mir egal, ob PChar oder String, Hauptsache es ist alles unicodefähig. Und das ist es doch, oder?
Nein.

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.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Incompatible typen Fehler, wieso?

  Alt 9. Aug 2014, 20:49
OK, danke euch... habe wieder was gelernt!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.224 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Incompatible typen Fehler, wieso?

  Alt 10. Aug 2014, 08:16
Eigentlich ist es mir egal, ob PChar oder String, Hauptsache es ist alles unicodefähig. Und das ist es doch, oder?
Da musst du bei Lazarus/FreePascal aufpassen. Dadurch das String = AnsiString geblieben ist kommt es sehr leicht vor das man die Nicht-Unicodefähigen Funktionen verwendet an stellen bei dem man die *native bzw. *utf8-Funktion hätte verwenden sollen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Incompatible typen Fehler, wieso?

  Alt 10. Aug 2014, 10:05
Komisch ist irgendwie, daß in der Online-Hilfe die Typenbezeichner der "Strings" fehlen
http://lazarus-ccr.sourceforge.net/d...eletefile.html
http://lazarus-ccr.sourceforge.net/d...ilecreate.html
Das war ein Bug in dem Tool, das zur Generierung der Hilfe verwendet wird. Dort wo die Hilfe eigentlich zu finden ist (nämlich www.freepascal.org/docs.var) ist schon seit dem Release von 2.6.2 die gefixte Dokumentation online: http://freepascal.org/docs-html/rtl/...eletefile.html

Zum Thema unicodefähig noch:
- bis einschließlich der 2.6.x Serie verwendete Free Pascal rein die Ansi Routinen unter Windows
- 2.7.1 unterstützt bereits den "Codepage aware AnsiString" und wir arbeiten auch daran die RTL mehr Unicode-aware zu bekommen, das ist aber noch ein Work In Progress
- Lazarus verwendet standardmäßig UTF-8 als Encoding innerhalb der AnsiStrings; das bedeutet Strings, die du von der LCL bekommst sind in UTF-8 und solche, die du an die LCL übergibst müssen UTF-8 sein; bei der Interaktion mit RTL und FCL Routinen musst du also mit SysToUTF8 bzw. UTF8ToSys entsprechend umwandeln oder du verwendest die UTF-8-fähigen Versionen einiger RTL Funktionen (DeleteFile sollte darunter fallen), welche mit einem *UTF8-Suffix versehen in der (glaube ich) LazUTF8 -Unit zur Verfügung stehen

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons

Geändert von JamesTKirk (10. Aug 2014 um 10:06 Uhr) Grund: Doppelte Grußformel... :/
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Incompatible typen Fehler, wieso?

  Alt 10. Aug 2014, 11:04
@JamesTKirk

Weiß Du vllt wie ich die aktuellste Hilfe in mein Lazarus einbaue? So das es mit F1 funktioniert?
Habe Lazarus 1.2.4, da ist noch die Hilfe von Documentation generated on: Aug 02 2012
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:49 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