![]() |
|
![]() ![]() ![]() |
|
rlinx |
|
||||||||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 17.5.2006 Репутация: нет Всего: нет |
Проблема возникает при попытке
сохранить текст (кириллица!): приложение сгенерировано с помощью App Wizard, я использую созданный по умолчанию объект:
в функции
У меня есть переменная:
в которой содержится текст "Старт". дальше варианты:
Подскажите где искать ошибку или решение |
||||||||
|
|||||||||
Rapalex |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 732 Регистрация: 20.1.2006 Где: Украина -> Ник олаев Репутация: 6 Всего: 8 |
Возникает вопрос: какого типа изначально переменная str и зачем её приводить к такому типу?
Приложение собирается как Unicode или нет? так сложносказать но это не нормально. -------------------- In vitium ducit culpae fuga. Желание избежать ошибки вовлекает в другую. (Horatius) |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Правильно и то, и другое:
Но только если у тебя формат строк соответствует приложению. А приложение у тебя явно UNICODE, тогда ты должен UNICODE-строки и использовать (а не CStringA). Смотри, что получается: WriteString принимает параметр LPCTSTR, это макрос, который в UNICODE-приложении равен LPCWSTR. Конечно, CStringA не может преобразоваться в LPCWSTR, вот и ошибка. А когда ты пишешь (CString)str, ты преобразуешь строку в "широкую", вот она тебе и выводится. Впереди записывается длина строки, а не "какой-то" символ, так что это нормально. И вообще, архив пишется в бинарном формате, а не в текстовом. -------------------- ... |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |