Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ Ord to VS c++ WCHAR (https://www.delphipraxis.net/192932-ord-vs-c-wchar.html)

EWeiss 2. Jun 2017 14:29

AW: Ord to VS c++ WCHAR
 
Code:
WCHAR Quote[2] = { 34, 0 };
Das war die Lösung ;)
Wenn der Char '\' und die länge davon nicht exakt stimmt schlägt die Function INWSTR fehl.

Danke warst mir eine große Hilfe.

gruss

Zacherl 2. Jun 2017 14:40

AW: Ord to VS c++ WCHAR
 
Ahh okay, in diesem Falle kannst du die Funktion auch einfach so aufrufen:
Code:
S1 = INWSTR(0, sCfg, L"\\");
Da bist du in die Falle getappt, weil WCHAR* nicht ein einzelnes Zeichen, sondern einen kompletten String (in C Sprachen immer ein Zeiger (*) auf das erste Zeichen) darstellt. Dadurch, dass die C-Strings auch keine vorgestellte Länge (wie in Delphi) besitzen, müssen sie zwangsweise nullterminiert werden.

EWeiss 2. Jun 2017 14:45

AW: Ord to VS c++ WCHAR
 
Zitat:

Zitat von Zacherl (Beitrag 1373334)
Ahh okay, in diesem Falle kannst du die Funktion auch einfach so aufrufen:
Code:
S1 = INWSTR(0, sCfg, L"\\");
Da bist du in die Falle getappt, weil WCHAR* nicht ein einzelnes Zeichen, sondern einen kompletten String (in C Sprachen immer ein Zeiger (*) auf das erste Zeichen) darstellt. Dadurch, dass die C-Strings auch keine vorgestellte Länge (wie in Delphi) besitzen, müssen sie zwangsweise nullterminiert werden.

Sieht so aus ;)

Aber diese Funktion habe ich vorher getestet und brachte keinen Erfolg seltsam.
Muss dem nochmal nachgehen.
Kann mir dann die Definition sparen.

EDIT:
Nein das funktioniert definitiv nicht.
Dann werden keine Icons geladen irgendwie kommt WCHAR * mit L"\\" nicht zurecht.

gruss

Zacherl 2. Jun 2017 14:47

AW: Ord to VS c++ WCHAR
 
Zitat:

Zitat von EWeiss (Beitrag 1373336)
Aber diese Funktion habe ich vorher getestet und brachte keinen Erfolg seltsam.

Wichtig ist, dass du das Backslash doppelt schreibst, sonst gillt es unter C/C++ als Escape Zeichen.

EWeiss 2. Jun 2017 14:50

AW: Ord to VS c++ WCHAR
 
Zitat:

Zitat von Zacherl (Beitrag 1373337)
Zitat:

Zitat von EWeiss (Beitrag 1373336)
Aber diese Funktion habe ich vorher getestet und brachte keinen Erfolg seltsam.

Wichtig ist, dass du das Backslash doppelt schreibst, sonst gillt es unter C/C++ als Escape Zeichen.

Danke nein es geht nicht siehe mein Edit :)
Wenn ich das so übergebe dann ist das Ergebnis 92 muss aber 34 sein.
Ich glaube man darf den Char im nachhinein nicht verändern er muss Exakt sein.

Also Char(34) + null terminierten Char

gruss

EWeiss 2. Jun 2017 15:15

AW: Ord to VS c++ WCHAR
 
es würde so gehen.. Theoretisch.. Praktisch nicht!
Code:
S1 = INWSTR(0, sCfg, L"\"\"");
Theoretisch und Praktisch hätte ich dann ein Ergebnis von 34.

Praktisch jedoch wäre der Array String dann länger wie 1 kann man ja auch so schon sehen. ;)
Das führt dann dazu das meine Funktion fehl schlägt.

gruss

Zacherl 2. Jun 2017 15:16

AW: Ord to VS c++ WCHAR
 
Willst du überhaupt den Backslash? Weil #34 ist ". Dementsrpechend müsste es dann natürlich
Code:
L"\""
heißen.

EWeiss 2. Jun 2017 15:19

AW: Ord to VS c++ WCHAR
 
Zitat:

Zitat von Zacherl (Beitrag 1373343)
Willst du überhaupt den Backslash? Weil #34 ist ". Dementsrpechend müsste es dann natürlich
Code:
L"\""
heißen.

JA das war die optimale Lösung ;)
Danke wieder mal..

gruss


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:11 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz