Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi string ein Alias für UnicodeString (https://www.delphipraxis.net/198780-string-ein-alias-fuer-unicodestring.html)

EWeiss 29. Nov 2018 09:02


string ein Alias für UnicodeString
 
Zitat:

Hinweis: In RAD Studio ist string ein Alias für UnicodeString.
Also im Klartext..
Kann ich alle WideString mit String ersetzen (Unter D2010 32Bit und DCE 64Bit? ) oder gibt es Konvertierungsprobleme in welcher Art auch immer?

Zitat:

Sie sollten UnicodeString anstelle von WideString verwenden.
Was denn nun?
UnicodeString oder String wenn String doch das gleiche sein soll wie UnicodeString

Die Beschreibungen sind manchmal wirklich unverständlich.

Warum die Frage..
Hatte gestern einen Absturz nur bei einer Zuweisung eines ToolTip mit WideString. (Ausschließlich 64Bit, unter 32Bit war das kein Problem)
Nach der Änderung der Variable auf string war das Problem behoben.
Um so etwas in der Zukunft zu vermeiden möchte ich alle WideString nach string umlegen. (Nur was habe ich dann zu erwarten? )

gruss

Fritzew 29. Nov 2018 09:25

AW: string ein Alias für UnicodeString
 
Ja kannst Du.
Allerdings mit einer Einschränkung. Immer wenn Du Delphi verlässt also z.B ein Interface zu COM,
oder Eine Dll lass es auf Widestring.
Alles was innerhalb von Delphi läuft sollte kein Problem darstellen.

EWeiss 29. Nov 2018 09:27

AW: string ein Alias für UnicodeString
 
Zitat:

oder Eine Dll lass es auf Widestring.
Es geht um eine DLL (Delphi) dort hatte ich das Problem mit dem ToolTip.
Also so lassen wie es ist.

Danke!

PS:
Zitat:

Alles was innerhalb von Delphi läuft sollte kein Problem darstellen.
Die Win32Api Funktionen bzw.. System DLL's werden ja nicht in Delphi geschrieben wenn ich diese mit string anstelle WideString (wenn verlangt aufrufe) kracht es?
Also die Frage ist wann verlasse ich Delphi..

gruss

Fritzew 29. Nov 2018 10:11

AW: string ein Alias für UnicodeString
 
Zitat:

Die Win32Api Funktionen bzw.. System DLL's werden ja nicht in Delphi geschrieben wenn ich diese mit string anstelle WideString (wenn verlangt aufrufe) kracht es?
Also die Frage ist wann verlasse ich Delphi.
Bei der WinApi geht es in den meisten Fällen um PChar.......
Widestring würde ich da nur benutzen wenn es auf der API Seite verlangt wird als BSTR und consorted auf der C, C++ Seite.
Aber ohne konkretes Beispiel kann man da nicht mehr sagen......

EWeiss 29. Nov 2018 10:32

AW: string ein Alias für UnicodeString
 
Ich habe es mal versucht..
Das geht leider nicht nach der ändern alles auf String kracht die Anwendung ;)

War ein test dachte könnte mir damit solche Probleme wie mit dem ToolTip dadurch ersparen.

gruss

TiGü 29. Nov 2018 11:38

AW: string ein Alias für UnicodeString
 
Zitat:

Zitat von EWeiss (Beitrag 1419636)
Also die Frage ist wann verlasse ich Delphi..

Als Daumenregel: Immer dann, wenn du nicht in die konkrete Implementierung einer Funktion gucken kannst (Strg+Linksklick).
Du arbeitest doch viel direkt mit Windows-Funktionen, um deine GUIs aufzubauen.
Du kennst ja die Funktion
Delphi-Quellcode:
function GetDC(hWnd: HWND): HDC; stdcall;
aus der Windows-Unit.
Da kannst du nicht reingucken, weil sie extern in der user32.dll von Windows definiert ist.
Delphi-Quellcode:
function GetDC; external user32 name 'GetDC';

EWeiss 29. Nov 2018 12:01

AW: string ein Alias für UnicodeString
 
Danke.

gruss

KodeZwerg 29. Nov 2018 12:28

AW: string ein Alias für UnicodeString
 
Zitat:

Zitat von EWeiss (Beitrag 1419636)
Also die Frage ist wann verlasse ich Delphi..

Ich hoffe nie :lol:

EWeiss 30. Nov 2018 08:14

AW: string ein Alias für UnicodeString
 
Muss nochmal nachhaken..

Wenn string ein Alias für UnicodeString ist warum bekomme ich dann einen Speicherleck.

bsp.
Mein Hint ist ein string die Funktion die den Hint füllen soll gibt WideString zurück.
Warum wird mir jetzt ein Speicherleck angezeigt wenn beides doch eigentlich das gleiche sein soll ?
WideString und string = UnicodeString (D2010)

Oder bin ich heute einfach nur blöd!
Den Widestring bekomme ich einfach nicht nach string konvertiert andauernd Speicherlecks.

gruss

mkinzler 30. Nov 2018 08:16

AW: string ein Alias für UnicodeString
 
UnicodeString ist ein (von der Delphi RTL) verwalteter Typ, WideString nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr.
Seite 1 von 3  1 23      

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 by Thomas Breitkreuz