Zdravím při vložení textu pro název výběrového menu mi vyhodí tuto chybu
WinApi se teprve učím takže vůbec netuším co s tím.
Předem díky za pomoc.
Zdravím při vložení textu pro název výběrového menu mi vyhodí tuto chybu
WinApi se teprve učím takže vůbec netuším co s tím.
Předem díky za pomoc.
#1 Kenvelo
Podle všeho kompiluješ pro Unicode (defaultní ve VS), takže textové konstanty musíš uvádět L"nějaký text", popř. univerzální (i pro ANSI) _T("nějaký text");
Radek Chalupa
- vývoj software na zakázku
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC)
http://www.radekchalupa.cz
#3 Kenvelo
Vždyť jsem to už napsal, prostě místo "Setting" tam má být L"Setting"
A to se týká samozřejmě všech textových konstant v programu:-)
Radek Chalupa
- vývoj software na zakázku
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC)
http://www.radekchalupa.cz
#6 Matherz
Snad naopak, ne?:-) V MS Visual C++ je defaultní (minimálně už od verze 2008) unicode, takže by mělo být "nechat unicode".
A obávám se že ty 2 řádky ekvivalentní nejsou. Pokud ta funkce Func má/očekává jako parametr textovou konstantu v unicode tj. něco jako Func(const wchar_t* txt), pak ten 2. řádek vyhodí chybu kompilátoru a to přetypování na tom nic nezmění, resp. nemá žádný smysl, protože "LPCSTR" není nic jiného než "const char*" a text v uvozovkách (bez jakékoliv dekorace před ním) představuje právě pointr na (konstantní) řetezec ansi znaků, tj. const char*.
Radek Chalupa
- vývoj software na zakázku
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC)
http://www.radekchalupa.cz
#7 Radek Chalupa
Ještě sem narazil na jednu věc. Jak vlastně vypsat číselnou proměnnou ?
Když napíši
int velikostX = 100;
MessageBox(hWnd, L"Velikost X",(LPCWSTR)velikostX, MB_ICONINFORMATION);
Tak mi to vlastně nevypíše
#8 Kenvelo
Předpokládám že tím jsi program shodil, ten MessageBox se sápal na adresu 100 a tam ho systém nepustí a program spadne, nebo by měl spadnout:-).
Je to jednoduché, samotné číslo např. pomocí _itow:
wchar_t* txt[50];
_itow(cislo, txt, 10);
Nebo i s textem
StringCbPrintf(txt, sizeof(txt), L"Velikost: %d", cislo);
A v MessageBoxu použiješ txt.
Radek Chalupa
- vývoj software na zakázku
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC)
http://www.radekchalupa.cz
#9 Radek Chalupa
Ne program nespadl,pokud už bylo definovaná hodnota proměnné ale když sem hodnotu chtěl přepsat přímo v běhu tak teprve program spadl. Díky za radu ;)
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku