AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein PChar, PAnsiChar, PWideChar, Integer, LPARAM, ... ?
Thema durchsuchen
Ansicht
Themen-Optionen

PChar, PAnsiChar, PWideChar, Integer, LPARAM, ... ?

Ein Thema von Glados · begonnen am 4. Nov 2017 · letzter Beitrag vom 5. Nov 2017
 
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#22

AW: PChar, PAnsiChar, PWideChar, Integer, LPARAM, ... ?

  Alt 4. Nov 2017, 22:14
Nur woher soll ich dann den richtigen Typen kennen, wenn die IDE mir schon PWideChar anzeigt?
Ich sehe es so: Einfach immer PChar und String benutzen, bis der Compiler meckert. Manchmal weiß man es sogar vorher, dass (API-)Funktionen einen konkreten Typen wie PWideChar oder WideString erwarten, weil man eine Funktion bereits in der Vergangenheit benutzt hat.

Zitat:
Beispiele

Delphi-Quellcode:
// #1
var
 pName: PWideChar;
begin
 pName := PWideChar('Test');
 CopyData.dwData := 0;
 CopyData.cbData := (StrLen(pName) + 1) * SizeOf(WideChar);
 CopyData.lpData := pName;
 SendMessage(hExistingInstance, WM_COPYDATA, 0, LPARAM(@CopyData));
end;

// #2
... := FindWindow(PWideChar('Test'));

// #3
... := GetFileAttributes(PWideChar('Test'));
GetFileAttributes und FindWindow sind beides Aliase (für FindWindowA/W bzw. GetFileAttributesA/W). Daher sollte hier besser jeweils PChar benutzt werden. Bzgl. des SendMessage kommt es darauf an, was der Empfänger der Nachricht erwartet - das kann man nicht pauschal sagen. Anders ausgedrückt: erwartet der Empfänger einen Zeiger auf einen Ansi-String, ist die Verwendung von PWideChar mit Sicherheit falsch.

Grüße
Dalai
  Mit Zitat antworten Zitat
 


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 08:18 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