2012-09-27 11 views
8

Mam zmienną CString, którą muszę przekonwertować na LPCTSTR (const char *). Potrzebuję tej konwersji, aby móc jej użyć jako argumentu w funkcji.Konwersja CString na LPCTSTR

Spojrzenie CString jak:

CString sqlTemp = _T("INSERT INTO "+ sw1 +" (filename, "+ sw2 +") VALUE ("+ sw7 +","+ sw3 +") "); 

Zawiera zapytania. Prototyp tej funkcji to:

int WriteBlob(LPCTSTR szSqlStat, LPCTSTR szFilePath) 

Czy możesz pokazać mi, jak przekonwertować na LPCTSTR? Może to być trywialne, ale jestem początkującym w języku C++ i nadal mogę się z tym pogodzić.

Dzięki.

+0

spróbuj tego (LPCTSTR) (LPTSTR) sqlTemp funkcjonować WriteBlog – Riskhan

Odpowiedz

11

Jedną z metod konwersji jest tak:

CString str; 

str = "Hello"; 

LPCSTR szTemp = (LPCSTR)(LPCTSTR)str; 
+1

można również wyjaśnić, dlaczego istnieje tak wiele różnych formatów (LPCTSTR, CString, char *, string, etc ...), które są w zasadzie takie same? Czy jest jakaś różnica, której po prostu nie widzę? – SinisterMJ

+3

Upadek łańcuchów jest obiektem, więc możesz nazywać metody na nim, w odróżnieniu od wszystkich innych. char * to w zasadzie tablica znaków. Cstring jest również tablicą znaków, ale może przyjmować 2 bajty w zależności od kodowania. LPCTSTR jest wskaźnikiem stałego łańcucha, więc nie można go modyfikować. –

+0

"Cstring to także tablica znaków" nie, nie jest. –

0
CString str; // the given string 
CStringA strA(str); // a helper string 
LPCSTR ptr = strA; 

Reference MSDN