![]() |
Ord to VS c++ WCHAR
wie bekomme ich ein Ord(34) = '\' nach C++ WCHAR portiert ?
Im Moment mache ich es so..
Code:
Was mich dabei stört das Quote dann eine länge von 260 Chars hat.
WCHAR Quote[] = { 34 };
Ich möchte aber nur den String '\' gruss |
AW: Ord to WCHAR
Aus dem Hut würde ich behaupten:
Delphi-Quellcode:
WideChar(Ord('\'))
|
AW: Ord to WCHAR
Zitat:
Ord gibt es nicht in VS C++. gruss |
AW: Ord to VS c++ WCHAR
Zitat:
Code:
WCHAR Quote[1] = { 34 };
// bzw. WCHAR Quote = 34; |
AW: Ord to VS c++ WCHAR
Zitat:
Werde es mal Testen Danke. gruss |
AW: Ord to VS c++ WCHAR
Jo geht aber der String ist immer noch 260 Zeichen lang.
Werde es mal mit char testen. funktioniert nicht. Bei beiden Varianten ist der String wie gesagt immer noch 260 Chars lang. gruss |
AW: Ord to VS c++ WCHAR
Der Backslash ist unter C++ das Escape-Zeichen, muss also selbst eventuell escaped werden ('\\')?
Oder brauchst du \0 als Ende-Kennzeichen des Strings (#34+#0), wobei WCHAR ja eigentlich nur ein Char und kein String ist? |
AW: Ord to VS c++ WCHAR
Zitat:
Code:
Das Anhängen des null terminierten Chars hilft leider nicht.
Quote + L'\0'
Zitat:
Zitat:
Code:
Danke.
WCHAR Quote[1] = { 34 };
gruss |
AW: Ord to VS c++ WCHAR
Zitat:
Code:
Sonst fehlt die Nullterminierung und der String wird so lange, bis zufällig irgendwo im Speicher dahinter mal eine Null steht.
WCHAR Quote[2] = { 34, 0 };
Alternativ kannst du String-Konstanten in C++ auch wie folgt definieren:
Code:
Hier würde die abschließende Null automatisch hinzugefügt. Das "L" kennzeichnet den String als "WideString".
wchar* quote = L"MY STRING";
Edit: Glaube ich habe nicht ganz verstanden, was du eigentlich vorhast. Kannst du evtl. den kompletten relevanten Teil des C++ Codes mal posten? |
AW: Ord to VS c++ WCHAR
Code:
...
WCHAR Quote[] = { 34 };
Code:
...
S1 = INWSTR(0, sCfg, Quote);
Code:
Die länge des Arrays Search = Quote ist 252 Chars lang sollte er aber nicht.
long INWSTR(IN long nIndex, IN WCHAR* MainStr, IN WCHAR* Search) {
long nRet = -1; long nLength = (long) wcslen(MainStr); if (nLength && (wcslen(Search))) { WCHAR* pdest; if (nIndex > -1) { pdest = wcsstr(&MainStr[nIndex], Search); if (pdest) { nRet = long(pdest - &MainStr[0]); } } else { nIndex += 1; if (nIndex < 0) { nIndex *= -1; } reverse(MainStr, nLength); pdest= wcsstr(&MainStr[nIndex], Search); if (pdest) { nRet = nLength - long(pdest - &MainStr[0]) - 1; } reverse(MainStr, nLength); } } return nRet + 1; } gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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