AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IntToStr zu WCHAR

Ein Thema von EWeiss · begonnen am 4. Aug 2017 · letzter Beitrag vom 5. Aug 2017
Antwort Antwort
Seite 1 von 3  1 23      
EWeiss
(Gast)

n/a Beiträge
 
#1

IntToStr zu WCHAR

  Alt 4. Aug 2017, 08:45
Kann mir jemand helfen weis nicht wie ich das in C++ rüber bringen soll.

intToStr(Second div 60) + 'Min ' + intToStr(Second mod 60) + 'Sec';

Der Wert soll an WCHAR (Unicode) übergeben werden.
Danach will ich den Text mit SetWindowText an meinen Label schicken.

Das ist soweit klar
Code:
(Second / 60) + L"Min " + (Second %= 60) + L"Sec";

gruss

Geändert von EWeiss ( 4. Aug 2017 um 08:50 Uhr)
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: IntToStr zu WCHAR

  Alt 4. Aug 2017, 09:56
Hallo Emil

tue Dir selbst einen gefallen und beschäftige Dich etwas mit
std::wstring und Co

Wenn es um Stringhandling geht ist C++ etwas ganz anderes als Delphi.

Es lohnt sich die Std Lib zumindest etwas zu kennen.

Gruss
Fritz Westermann
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: IntToStr zu WCHAR

  Alt 4. Aug 2017, 20:16
sorry doppelt kann gelöscht werden.

gruss

Geändert von EWeiss ( 4. Aug 2017 um 20:21 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: IntToStr zu WCHAR

  Alt 4. Aug 2017, 20:20
Hallo Emil

tue Dir selbst einen gefallen und beschäftige Dich etwas mit
std::wstring und Co

Wenn es um Stringhandling geht ist C++ etwas ganz anderes als Delphi.

Es lohnt sich die Std Lib zumindest etwas zu kennen.

Gruss
Da magst recht haben hilft mir aber nicht bei meinem aktuellen Problem.
Das ist ein Projekt in C++ das ich nur einmal erstelle dann wende ich mich wieder Delphi zu.
C++ ist komplett anders als Delphi

Warum muss ich jetzt das Komplette MSVC in 3 stunden erlernen wegen 1 Funktion (Frage) wenn mir dabei jemand helfen könnte.


gruss
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

AW: IntToStr zu WCHAR

  Alt 4. Aug 2017, 21:41
Sofern du keinen älteren Standard als C++11 unterstützen willst, kannst du dafür std::string s = std::to_string(42); verwenden. Die std::string Klasse kann auch appenden und sollte den + Operator überladen haben, sodass du die Stringkonkatenation genau wie in Delphi hierrüber handhaben kannst.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: IntToStr zu WCHAR

  Alt 4. Aug 2017, 21:44
Sofern du keinen älteren Standard als C++11 unterstützen willst, kannst du dafür std::string s = std::to_string(42); verwenden. Die std::string Klasse kann auch appenden und sollte den + Operator überladen haben, sodass du die Stringkonkatenation genau wie in Delphi hierrüber handhaben kannst.
Ich komme mit der Formatierung nicht zurecht
Der Ausgangsstring ist WCHAR nicht string.

gibt es das?
Code:
std::to_string(42).wchar_t;
gruss

Geändert von EWeiss ( 4. Aug 2017 um 21:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#7

AW: IntToStr zu WCHAR

  Alt 4. Aug 2017, 21:49
Ja analog zu std::string gibt es auch std::wstring

Edit:
Und std::to_wstring
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: IntToStr zu WCHAR

  Alt 4. Aug 2017, 21:55
Ja analog zu std::string gibt es auch std::wstring

Edit:
Und std::to_wstring
Code:
WCHAR StreamLenght = std::to_wstring(Second / 60) + L"Min " + std::to_wstring(Second %= 60) + L"Sec";
Zitat:
Fehler (aktiv) E0413 Es ist keine passende Konvertierungsfunktion von ""std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t>>"" in ""WCHAR"" vorhanden.
Zitat:
Fehler C2440 "Initialisierung": "std::basic_string<wchar_t,std::char_traits<wchar_ t>,std::allocator<wchar_t>>" kann nicht in "WCHAR" konvertiert werden
gruss

Geändert von EWeiss ( 4. Aug 2017 um 23:16 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: IntToStr zu WCHAR

  Alt 4. Aug 2017, 23:13
So macht man aus einer Zeile 11

Delphi-Quellcode:
        INT64 Second = (aMediaProperty.PlaybackLength / 10000) / 1000;
        
        WCHAR Minutes[MAX_PATH];
        WCHAR Seconds[MAX_PATH];
        WCHAR StreamLenght[MAX_PATH];
        // Minuten
        std::wstring Min_tmp = std::to_wstring(Second / 60);
        WCHAR * Min = &Min_tmp[0];
        Str_Combine(Minutes, Min, L" Min ");
        // Sekunden
        std::wstring Sec_tmp = std::to_wstring(Second %= 60);
        WCHAR * Sec = &Sec_tmp[0];
        Str_Combine(Seconds, Sec, L" Sec");
        // Kombinieren
        Str_Combine(StreamLenght, Minutes, Seconds);
        // Ausgabe
        SetWindowText(hLblStreamLenght, StreamLenght);
Was für ein Schmarrn. Eine andere Lösung fällt mir nicht ein.
Wenn ich das jetzt hiermit auch noch machen muss dann habe ich 50 Zeilen anstelle von 3

Delphi-Quellcode:
        //lbl_VideoInfo.Caption : = FormatFloat('#,##0', aMediaProperty.Video_Width) + ' x ' +
        // FormatFloat('#,##0', aMediaProperty.Video_Height) + ', ' +
        // FormatFloat('##0.00', aMediaProperty.Video_FPS) + ' FPS';
        //SetWindowText(hlblVideoInfo, VideoInfo);
        //lbl_AudioProperty.Caption : = intToStr(aMediaProperty.Audio_Channels) + ' Channel, ' +
        // FormatFloat('#,##0', aMediaProperty.Audio_Samplerate) + ' SPS, ' +
        // intToStr(aMediaProperty.Audio_BitsPerSample) + ' BPS';
        //SetWindowText(hlblAudioProperty, AudioProperty);
gruss

Geändert von EWeiss ( 4. Aug 2017 um 23:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#10

AW: IntToStr zu WCHAR

  Alt 5. Aug 2017, 00:57
Dein Fehler kommt daher, dass du deine Variable als WCHAR (einzelnes Zeichen = WideChar) deklarierst und nicht als WCHAR* (PWideChar).
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 14:59 Uhr.
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