DX9 Problem nach Umstieg auf VS2008
-
Hallo,
bin seit kurzem auf die aktuelle Version von Visual Studio umgestiegen und habe auch das aktuelle DX SDK installiert. Mein altes Projekt ließ sich soweit auch gu portieren, allerdings habe ich ein Problem beim erzeugen eines D3D9 Textobjekts:void CreateD3D9Font(void) { LOGFONT LogFont = { 0 }; strcpy(LogFont.lfFaceName, "Arial"); D3DXCreateFontIndirect(lpD3DDevice, &LogFont, &lpD3D9Font); }Dies ging bisher immer problemlos, allerdings bekomme ich nun folgende Fehlermeldungen:
Error 1 error C2664: 'strcpy' : cannot convert parameter 1 from 'WCHAR [32]' to 'char *' c:\users\sevo\documents\visual studio 2008\projects\altida\altida\altida.cpp 358 Altida
Error 2 error C2664: 'D3DXCreateFontIndirectW' : cannot convert parameter 2 from 'LOGFONT *' to 'const D3DXFONT_DESCW *' c:\users\sevo\documents\visual studio 2008\projects\altida\altida\altida.cpp 359 AltidaWie kann ich dieses Problem nun möglichst einfach beseitigen? Bisher lief dieser Code ja einwandfrei.
Danke schonmal für eure Hilfe!
-
entweder in den projekteinstellungen unicode ausschalten, oder dein komplettes projekt unicode konsistent machen, was mit wcscpy() anstatt strcpy() anfangen würde

-
Danke erstmal,
also mit wcscpy bekomme ich nun folgende Fehlermeldung:Error 1 error C2664: 'wcscpy' : cannot convert parameter 2 from 'const char [6]' to 'const wchar_t *' c:\users\sevo\documents\visual studio 2008\projects\altida\altida\altida.cpp 358 Altida
Selbiges, wenn ich Unicode ausschalte.
-
sevobal schrieb:
Danke erstmal,
also mit wcscpy bekomme ich nun folgende Fehlermeldung:Error 1 error C2664: 'wcscpy' : cannot convert parameter 2 from 'const char [6]' to 'const wchar_t *' c:\users\sevo\documents\visual studio 2008\projects\altida\altida\altida.cpp 358 Altida
Selbiges, wenn ich Unicode ausschalte.
ich sagte: oder

wcscpy(LogFont.lfFaceName, L"Arial");
-
Danke,
damit verschwindet die erste Fehlermeldung, allerdings bleibt die zweite:Error 1 error C2664: 'D3DXCreateFontIndirectW' : cannot convert parameter 2 from 'LOGFONT *' to 'const D3DXFONT_DESCW *' c:\users\sevo\documents\visual studio 2008\projects\altida\altida\altida.cpp 359 Altida
-
das ist selbe in grün, schalte doch erstmal unicode für dein projekt aus, lasse es wie es ist, und portierst dann schritt für schritt zur unicode unterstützung hin.
der fehler ist doch offensichtlich, die unicodevariante von D3DXCreateFontIndirect() will halt D3DXFONT_DESCW* als parameter, nicht LOGFONT*
-
sevobal schrieb:
Wie kann ich dieses Problem nun möglichst einfach beseitigen?
die einfachste moeglichkeit ist wie sothis_ sagte
entweder in den projekteinstellungen unicode ausschalten,
dann laeuft es wie zuvor.
rechtsclick auf das projekt, eigenschaften/properties und dann solltest du schon unicode sehen.