Для начала вам нужно понять, используете ли вы юникод или нет.По умолчанию Visual Studio любит создавать приложения, чтобы они использовали Unicode.Если вам нужен ANSI (который использует только 1 байт на букву), вам нужно будет преобразовать его из Unicode в ANSI.Это даст вам БАЙТ * для объекта.Вот способ сделать это:
CString hello;
hello=L"MyApp"; // Unicode string
int iChars = WideCharToMultiByte( CP_UTF8,0,(LPCWSTR) hello,-1,NULL,0,NULL,NULL); // First we need to get the number of characters in the Unicode string
if (iChars == 0)
return 0; // There are no characters here.
BYTE* lpBuff = new BYTE[iChars]; // alocate the buffer with the number of characters found
WideCharToMultiByte(CP_UTF8,0,(LPCWSTR) hello,-1,(LPSTR) lpBuff,iChars-1, NULL, NULL); // And convert the Unicode to ANSI, then put the result in our buffer.
// И если вы хотите иметь постоянный байтовый указатель, просто добавьте эту строку:
const BYTE* cbOut = lpBuff;
Теперь, если все, что вы хотите, эточтобы получить доступ к CString как к исходному, затем просто приведем его как:
const TCHAR* MyString = (LPCTSTR) hello;