Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat
------ Build started: Project: 3D Programme, Configuration: Debug Win32 ------
1>Compiling...
1>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
1>main.cpp
1>c:\2005 express projekte\3d programme\3d programme\main.cpp(17) : error C2664: 'MessageBoxA' : cannot convert parameter 2 from 'const wchar_t [49]' to 'LPCSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\2005 express projekte\3d programme\3d programme\main.cpp(34) : error C2664: 'MessageBoxA' : cannot convert parameter 2 from 'const wchar_t [53]' to 'LPCSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\2005 express projekte\3d programme\3d programme\main.cpp(54) : error C2664: 'MessageBoxA' : cannot convert parameter 3 from 'const wchar_t [17]' to 'LPCSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\2005 express projekte\3d programme\3d programme\main.cpp(85) : error C2664: 'MessageBoxA' : cannot convert parameter 3 from 'const wchar_t [28]' to 'LPCSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>Build log was saved at "file://c:\2005 Express Projekte\3D Programme\3D Programme\Debug\BuildLog.htm"
1>3D Programme - 4 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Zitat
1>cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
Zitat
'MessageBoxA' : cannot convert parameter 3 from 'const wchar_t [28]' to 'LPCSTR'
'MessageBoxA' : cannot convert parameter 2 from 'const wchar_t [28]' to 'LPCSTR'
Zitat von »"Draculark"«
jetzt kannst du dir das zeugs von den guten leuten hier durchlesen, wobei ich bezweifel, dass du das dann super verstehen wirst, oder einfach bischen googeln und informieren.
oder die funktion MessageBoxA markieren und F1 drücken
Zitat von »"grek40"«
autsch, wie peinlich
das kommt davon, wenn man ständig nur mit C++ Mitteln arbeitet, und dann mitreden will wenn man meint es ginge um C Funktionen obwohl es eigentlich um WinAPI geht :shock:
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 |
#ifdef _UNICODE typedef std::basic_string<wchar_t> myString #define _T(x) L ## x #else typedef std::basic_string<char> myString #define _T(x) x #endif /* _UNICODE */ |
Zitat von »"Nico"«
Du kannst auch folgendes machen, um in Zukunft solche Fehler zu umgehen:
Code (C++):
#ifdef _UNICODE
typedef std::basic_string<wchar_t> myString
#define _T(x) L ## x
#else
typedef std::basic_string<char> myString
#define _T(x) x
#endif /* _UNICODE */
Was macht das?
Das definiert eine C++-String-Klasse abhängig von deinen Projekteinstellungen und definiert das Makro _T() das automatisch im Unicode-Modus das L vor deine Strings setzt. Im Multibyte-Modus tut es das nicht.
Vorteil: Du kannst so gut wie alle String-Operationen ausführen, ohne eben versch. Funktionen wie wsprintf etc zu verwenden, da du mit der normalen String-Klasse arbeiten kannst. Dank der Standard-Methode .c_str() kannst du das auch an Funktionen wie MessageBox() übergeben.
Generell solltest du aber lernen mit Fehlern und Warnungen umzugehen. Denn sonst wird Dir das Programmieren in Zukunft wenig Spaß machen. Also: Lesen, Code an der Stelle ankucken und überlegen .
lg
Zitat von »"Nico"«
Geht auch. Aber du brauchst die TCHAR.h nicht einbinden und es ist kürzer als TEXT.
Zitat von »"GR-PA"«
Zitat von »"Nico"«
Geht auch. Aber du brauchst die TCHAR.h nicht einbinden und es ist kürzer als TEXT.
um das Makro TEXT() benutzen zu können muss man TCHAR.h nicht einbinden.
Zitat von »"Nico"«
Zitat von »"GR-PA"«
Zitat von »"Nico"«
Geht auch. Aber du brauchst die TCHAR.h nicht einbinden und es ist kürzer als TEXT.
um das Makro TEXT() benutzen zu können muss man TCHAR.h nicht einbinden.
Hab ich auch nie behauptet.....
Werbeanzeige