2012-09-27 18 views
8

Tengo una variable CString que necesito convertir a LPCTSTR (const char *). Necesito esta conversión para que pueda usarla como argumento en una función.CString a conversión LPCTSTR

La mirada CString como:

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

Contiene una consulta. El prototipo de la función es:

int WriteBlob(LPCTSTR szSqlStat, LPCTSTR szFilePath) 

Así podría usted mostrar un exemple de cómo convertir a LPCTSTR? Puede ser trivial, pero soy un principiante de C++ y todavía me gusta.

Gracias.

+0

favor intente esto (LPCTSTR) (LPTSTR) sqltemp a la función WriteBlog – Riskhan

Respuesta

11

Un método de conversión es la siguiente:

CString str; 

str = "Hello"; 

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

Se puede también explicar por qué hay tan muchos formatos diferentes (LPCTSTR, CString, char *, string, etc ...) que son todos básicamente iguales? ¿O hay alguna diferencia que simplemente no puedo ver? – SinisterMJ

+3

Caída de cadena es un objeto por lo que puede llamar a métodos a diferencia de todos los demás. char * es básicamente una matriz de caracteres. Cstring también es una matriz de caracteres pero puede tomar 2 bytes dependiendo de la codificación. LPCTSTR es un puntero a una cadena constante, por lo que no puede modificarlo. –

+0

"Cstring también es una matriz de caracteres" no, no lo es. –

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

Reference MSDN