Buby Temat założony przez niniejszego użytkownika |
[WinApi] Problem ze stringiem » 2013-11-06 20:23:25 Witam! Mam następujący problem. Napisałem funkcję, konwertującą stringa na liczbę. Funkcja działa miód malina, jednak, gdy wstawię ją do programu napisanego w WinApi, to nazwa mojego programu na górnym pasku, staje się dość dziwna - oprócz standardowego napisu pojawiają się chińskie znaki.
Z problemem spotykam się też w innych funkcjach, gdzie muszę zadeklarować string jako argument.
Spotkał się ktoś z podobnym przypadkiem i czy byłby w stanie mi wytłumaczyć dlaczego tak się dzieje?
Szukałem w Google, jednak nie znalazłem tego, czego szukałem - ani rozwiązania, ani przyczyny, dlaczego po deklaracji stringa tak się dzieje. |
|
den93 |
» 2013-11-06 20:36:09 Podaj może jakieś przykłady, kawałki kodu. To brzmi jak brak nulla na końcu stringa? Piszesz pod unikod, czy nie? |
|
Buby Temat założony przez niniejszego użytkownika |
» 2013-11-06 20:55:18 Co do unikodu, to tak naprawdę nie wiem, jestem laikiem w WinApi. Problem pojawia się, gdy używam funkcji z deklaracją stringa jako argumentu. Przykład: std::string liczbaA; std::string liczbaB; std::string WYNIK; int pomoc; int wynik;
case ZROB: pomoc = WyrazDoLiczby( liczbaA ); wynik += pomoc; pomoc = WyrazDoLiczby( liczbaB ); wynik += pomoc; WYNIK = LiczbaDoWyrazu( wynik ); SetWindowText( WYNIK_WYSWIETL, WYNIK.c_str() ); break;
Taki jest mój kod, kodu funkcji nie podaję, bo jest chyba zbędny. Dodam, że funkcja WyrazDoLiczby jest typu double , a LiczbaDoWyrazu string . Obie zwracają wartości za pomocą return. W razie potrzeby wstawię. @Edit: Pekfos, sprawdziłem, nadal mam chińskie znaki w nazwie. |
|
pekfos |
» 2013-11-06 21:09:48 Spróbuj z SetWindowTextA(). Co otrzymujesz, gdy wypisujesz WYNIK do np std::cout? |
|
Buby Temat założony przez niniejszego użytkownika |
» 2013-11-06 21:20:49 Dobra, dla potomnych, po 3 godzinach męki i lampienia się w ten sam kod znalazłem rozwiązanie!
Chodziło o to, że gdy używałem funkcji z biblioteki w WNDPROC, nie wiadomo dlaczego robiły się chińskie znaki. Wpadłem na to, że spakuję komendy z użyciem funkcji, do funkcji w mojej aplikacji, a po wciśnięciu przycisku, wywoła ją, ta natomiast wywoła wynik.
Zamykam jak coś.
Pekfos, na cout działa wszystko jak należy.
|
|
« 1 » |