AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi PChar, PWideChar, Array of Char und Windows API
Thema durchsuchen
Ansicht
Themen-Optionen

PChar, PWideChar, Array of Char und Windows API

Ein Thema von SyntaxXx · begonnen am 2. Mai 2015 · letzter Beitrag vom 4. Mai 2015
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: PChar, PWideChar, Array of Char und Windows API

  Alt 3. Mai 2015, 11:27
Und aus dem Grund nimmt man nicht einfach so blind PWideChar, nur weil der Editor das so anzeigt.
> GetUserName (Ohne A oder W) vom Delphi eine compilerabhängige Weiterleitung und die ist explizit mit PChar deklariert.

PS: Genau soein Schrot "falsche Typen" verwendet, waren der Hauptgrund für die D2009-Problemchen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
SyntaxXx

Registriert seit: 14. Dez 2008
328 Beiträge
 
Delphi XE4 Architect
 
#2

AW: PChar, PWideChar, Array of Char und Windows API

  Alt 4. Mai 2015, 07:57
Und was steht in bufferlen drin, wenn GetuserName fehl schlägt?
Es steht dann garnichts drin ('').

GetUserName (Ohne A oder W) vom Delphi eine compilerabhängige Weiterleitung und die ist explizit mit PChar deklariert.
Das heißt also, ich müsste via "GetMem" erst einmal genügend Speicher anfordern, damit in Buffer was drin steht?
Wenn dem so ist, dann verstehe ich auch, weshalb man meistens statt PChar ein Array[0..255] of Char vorfindet.
Denn laut Doku ist die Größe von PChar 8 Bit, was ja einer Maximallänge von 256 Zeichen entspricht, welche ja äquivalent zu den 0..255 ist.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: PChar, PWideChar, Array of Char und Windows API

  Alt 4. Mai 2015, 08:00
Zitat:
Denn laut Doku ist die Größe von PChar 8 Bit, was ja einer Maximallänge von 256 Zeichen entspricht, welche ja äquivalent zu den 0..255 ist.
Ein PChar ist ein Zeiger und hat deshalb 32Bit in einem 32Bit Betriebssytem. Ein AnsiChar hat 8 Bit. Ein PChar kann aber auch auf eine UnicodeString zeigen ( ab D2009) dann hat ein Char 16 Bit. Die Größe des Buffers hat damit nichts zu tun.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: PChar, PWideChar, Array of Char und Windows API

  Alt 4. Mai 2015, 08:46
Und was steht in bufferlen drin, wenn GetuserName fehl schlägt?
Es steht dann garnichts drin ('').
Also null. Davon ziehst du dann eins ab und rufst die Funktion ein zweites mal auf. Ob das aber gut geht? Bzw. was dass wohl im Buffer drin steht? Wahrscheinlich nur Schrott.
Michael
Ein Teil meines Codes würde euch verunsichern.
  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 12:32 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