Ein Double Wert zu LPCWSTR convertieren
-
Hallo und schönen Abend,
ich möchte hier aus einer Exel Datei einen double Wert laden(eigendlich int aber ein Befehl der Bibliothek kann nur double) und ihn anschließen mit TextOut ausgeben.Wenn ich einfach
(LPCWSTR) Zahlschreibe bekomm ich ein Fehler.
Was kann ich da machen?
-
1. Was für ein Fehler?
2. Was ist Zahl für ein Typ?[EDIT]
Da Du mit LPCWSTR und TextOut(..) herumhantierst bist Du hier falsch. Das gehört eher ins WinAPI oder Rund um die Programmierung Forum.Zeige auch etwas mehr Code...
-
Was führ ein Fehler :
Bei dem Ausdruck Ergebniss = (LPCWSTR) Zahl; bekomme ich folgenden Fehler:
error C2440: 'type cast' : cannot convert from 'double' to 'LPCWSTR'Zahl ist wie gesagt vom Typ double,die sich in einer classe befindet.
-
Im C++ FAQ gibt es einen Beitrag zum Thema "einmal Zahl nach String und zurück", der dir eventuell weiterhelfen könnte.
-
JA danke für den Link,jetzt hab ich den double wert in std::string convertiert,doch jetzt kommt der gleiche Fehler,dass er den string nicht in LPCWSTR convertieren kann.
Kann ich noch was machen?
-
Fuer LPCWSTR brauchst du std::wstring und nicht std::string. Danach kannst du .c_str() benutzen um den an TextOut weiter zu geben.
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++/CLI mit .NET in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Wie schon gesagt: zahl ist ein double und du brauchst daraus einen ASCII-String? Der muss erst erzeugt werden, bevor man den an eine WinApi-Funktion weitergeben kann, die einen Stringpointer erwartet. Wenn du keine geeignete Funktion des Compilers dafür findest, kannst du auch die Funktion dtoa() von meiner HP http://berniebutt.npage.de herunterladen. Ist vielleicht nicht besonders elegant, tut es aber.
-
Stani schrieb:
JA danke für den Link,jetzt hab ich den double wert in std::string convertiert,doch jetzt kommt der gleiche Fehler,dass er den string nicht in LPCWSTR convertieren kann.
Kann ich noch was machen?Also, wenn du schon den std::string verwendest:
template<class Type> std::string ToStringA(Type val) { std::basic_ostringstream<char> o; o << val; return o.str(); } template<class Type> std::wstring ToStringW(Type val) { std::basic_ostringstream<wchar_t> o; o << val; return o.str(); } template<class Type> std::basic_string<TCHAR> ToString(Type val) { #ifdef _UNICODE return ToStringW(val); #else return ToStringA(val); #endif }Formatflags können auch ganz nützlich sein (am Beispiel von ToStringA)
template<class Type> std::string ToStringA(Type val, int width, char fill=' ') { ostringstream o; o << setfill(fill) << setw(width) << val; return o.str(); }