Veröffentlicht 20. April 200223 j Hi, ich kriege immer einen Fehler "[Fehler] Unit2.pas(76): Inkompatible Typen: 'String' und 'PChar'" was kann ich dagegen tun? Ist das so ähnlich wie bei IntToStr? thx cu
20. April 200223 j Der Syntax zufolge gehe ich mal von Delphi aus... - Wo bekommst Du die meldung denn? Ein Quellcode-Ausschnitt bzw. die betroffenen Variablen/Komponenten etc wären schon hilfreich! Allgemein läßt sich aber sagen, daß ein PCahr halt nur ein Zeichen ist während ein String eine Zeichenfolge (bzw. ein Array von Zeichen) ist. Weiß aber leider grad nicht, ob und wie man da was umwandeln kann. Vielleicht kannst Du es ja mal über eine Variable vom Typ Variant versuchen...
20. April 200223 j Ich war immer der Meinung, daß PChar ein Zeiger auf ein Zeichen ist. Ich habe eben im C++Builder (obwohl PChar ursprünglich von Delphi stammt, kennt der C++Builder PChar) nachgesehen und der "behauptet" dasselbe. PChar ist also nicht ein einzelnes Zeichen, sondern ein Zeiger auf ein Zeichen. Das ist ein sehr wichtiger Unterschied. Jan
24. April 200223 j PChar in String kann man ganz leicht umwandeln. Das geht mit PChar(String). Ob's auch umgekehrt geht, weiß ich noch nicht.
24. April 200223 j PChar ist die Delphi-Version des C-Strings, also ein String geht solange bis ein #0 kommt (ASCII 0). Beim einem Delphi String steht am Anfang die Anzahl der Zeichen die der String lang ist. Um aber Win-APIs zu benutzen (oder auch C-Dlls) braucht man eben nullterminierte Strings und das sind eben PChars. Stings bei C sind übrigens keine Strings an sich sondern Arrays of Char und PChar wie man vom Namen her vermuten könnte ein Pointer auf Char also auf den ersten Char des Arrays.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.