jak skonwertowac LPTSTR na char *?

0

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?

0
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"?

0

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

0

Bo kopiujesz wskaźnik a nie to, na co wskazuje.
Zainteresuj się funkcją WinAPI strcpy.

0

Alez kombinacje [sciana]

m_editText.GetLine(m_nLineIndex, m_csInputText);

Czyz nie prosciej? :)

0

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!

0
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));
0

@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?

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