Mam problem z konwersja LPTSTR na char *,
LPTSTR (lub TCHAR *) jest to 32 bitowy wskaznik, wiec w rezultacie wychodza bzdury,
czy ktos juz sie tym kiedys zajmowal?
kts napisał(a)
LPTSTR (lub TCHAR *) jest to 32 bitowy wskaznik
A char * to nie wskaźnik?
Czym wg Ciebie się one różnią?
I co oznacza "konwersja wskaźników"?
ok, sorry, troche zle wyjasnilem sprawe,
wiec mam kontrolke CEdit (mfc)
i sciagam z niej tekst (jestemzainteresowany, konkretna linijka:
m_editText.GetLine(m_nLineIndex, m_tszBuffer);
int GetLine( int nIndex, LPTSTR lpszBuffer ) const; int GetLine( int nIndex, LPTSTR lpszBuffer, int nMaxLength ) const;wiec jak widac zawartosc laduje w m_tszBuffer czyli LPTSTR,
nastepnie jestem zainteresowany konwersja na CString robie tak:
m_csInputText = CString((char *) m_tszBuffer);
i tu jest problem bo laduja tutaj jakies smieci,
na poczatku myslalem, ze to '\r' i 'n', czyli parka konczaca linie,
ale to sa niestety jakies inne smieci???
Za pomoc dziekuje z gory, moze ktos mial juz podobny problem?
pozdrawiam
Bo kopiujesz wskaźnik a nie to, na co wskazuje.
Zainteresuj się funkcją WinAPI strcpy.
Alez kombinacje [sciana]
m_editText.GetLine(m_nLineIndex, m_csInputText);
Czyz nie prosciej? :)
spoko, jakos przebrnalem przez to, dzieki za podpowiedzi.
Dobrym rozwiazaniem okazala sie rezerwacja pamieci dla tablicy char,
i podawanie jej zamiast LPTSTR,
ale pojawil drugi problem, poniewaz pierwsza metoda sciaga tylko linijki :(,
Czy zna ktos jakas metode, ktora zwroci zaznaczony tekst,
ktory lezy miedzy: m_nStartChar a m_nEndChar???
m_editText.GetSel(m_nStartChar, m_nEndChar);
w MSDN'ie nie ma nic :(, albo zle szukam...
za pomoc z gory dzieki!
kts napisał(a)
m_editText.GetSel(m_nStartChar, m_nEndChar);
w MSDN'ie nie ma nic :(, albo zle szukam...
Zle szukasz :)
m_editText.GetSel(m_nStartChar, m_nEndChar);
CString strText;
m_editText.GetWindowText(strText);
strText.Mid(m_nStartChar, (m_nEndChar - m_nStartChar));
@Malcolm, dzieki, tak tez zrobilem, tylko z tym jest maly problem,
bo w kontrolce mam tekstu, np.: > 2 MB, i chce z niego wybierac pojedyncze slowa
lub zdania i wydawalo mi sie, ze znajde cos bardziej efektywnego.
No bo tworzenie takiego obiektu klasy CString za kazdym razem
i wyciaganie tego "Substringa" tez troche kosztuje.
Widze, ze Bill i ekipa sie tutaj nie popisali... :(
czy po prostu myslisz, ze taka metoda robila by to samo?