работаю в Visual C++ при помощи конструктора нарисовал окошко в него вставил элемент типа EditControl, и хочу выводить в нее текст. все вроде бы хорошо, и русский текст понимает если начальное значение строки текста задавать в коде программы. проблемы начинаются если читать текст из файла(созданного при помощи блокнота) и затем пытаться его вывести
| Код | HANDLE hFile;
hFile = CreateFile(_T("d:\\test\\2.txt"), GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); int bResult DWORD nBytesRead=0; const int N_SIZE=30; char rBuf[N_SIZE]=""; bResult = ReadFile(hFile, rBuf, N_SIZE, &nBytesRead, NULL); rBuf[N_SIZE]='\0'; if (!bResult) { unsigned long dwError; dwError = GetLastError(); MessageBoxW(_T("Чтения файла"),_T("Ошибка"),MB_OK); return(-1); } std::string s(rBuf); wchar_t* w_str = new wchar_t[s.length() + 1](); std::copy(s.begin(), s.end(), w_str); \\ собсно записываем полученый текст в переменную VALUE элемента EditControl out_text.Insert(0,w_str); \\\ вместе с тем out_text.Insert(0, _T("это русский текст")); нормально отображается на экране
UpdateData(false);
CloseHandle(hFile);
|
|