CString do Char

0

trywialny problem a jednak meczy.
probowalem roznymi metodami, ale ciagle cos nie dziala.
char *temp = (char *)(LPCTSTR)tempNick;
CGracz Gracz((char)temp); //przypisuje temp do nicku [elementu klasy CGracz]
(tempNick to CString), taki uklad sie kompiluje, ale nick przyjmuje losowa wartosc.

/////
strcpy(R1.tekst,(LPCTSTR)komunikat); // cos takiego co pojawialo sie w wielu wpisach w necie w ogole tutaj nie dziala...

Error 1 error C2664: 'strcpy' : cannot convert parameter 2 from 'LPCTSTR' to 'const char *'

0

Chłopie, bardziej chaotycznie zadanego pytania w życiu nie widziałem.

Załącz kod klasy i opisz spokojnie o co chodzi.

0

class CGracz
{
public:
char nick[20];
CGracz(char _nick);
};

na ekranie mfc edit box z przypisana zmienna CString tempNick;
po kliknieciu w przycisk 'ok' chce wczytac zmienna z edit boxa i odpalic nowa klase CGracz od tej zmiennej.
czyli powinienem wpierw utworzyc zmienna tymczasowa typu char, przekonwertowac do niej zmienna tempNick (typu CString) a potem uruchomic konstruktor CGracz gracz(zmienna_tymczasowa);
to, czego nie potrafie zrobic to konwersja z CString do char. w poprzednim wpisie dodalem 2 metody znalezione w internecie, dzialaja tak jak opisalem, czyli jednak pozwala na kompilacje, ale nie dziala, druga nie pozwala, wyskakuje wpisany wyzej blad.

0

jeżeli masz blad konwersji z 'LPCTSTR' na zwykle char*, to znaczy, ze u Ciebie 'LPCTSTR' == 'LPCWSTR' czyli masz wlaczone Unicode. A to oznacza, ze 'LPCTSTR' == wchar_t* i za ChinyLudowe tego wprost nie przepiszesz, gdyz to jest inne kodowanie. Użyj WideCharToMultibyte lub wcstombs lub podobnej. W druga strone zas: MultibyteToWideChar, mbstowcs

edit: heh.. czekaj.. jesli ctor CString Ci to bierze, to znaczy ze 'LPCTSTR'='LPCSTR', bez w, nie unicode. Moze po prostu Twoje strcpy wymaga, aby DRUGI parametr byl CHAR* a nie CHAR CONST *? sprawdz to najpierw i jesli tak, to zrzutuj poprawnie. Jak sie nie uda, sprawdz czym jest LPCTSTR i jestli wchar_t to zastosuj to co wyzej napisalem

1 użytkowników online, w tym zalogowanych: 0, gości: 1