Здравствуйте, RussianFellow, Вы писали:
RF>Не появляется на экране сообщение AfxMessageBox в моей программе. RF>Код:
RF>
RF>strcpy(sresinfo,"Запись расчётных значений была осуществлена в файл ");
RF>strcat(sresinfo,sfilenamebrief);
RF>length = MultiByteToWideChar(1251,0,sresinfo,-1,0,0);
RF>wides = new wchar_t[length];
RF>MultiByteToWideChar(1251,0,sresinfo,wides,length);
RF>AfxMessageBox(wides);
RF>delete[] wides;
RF>
RF>В отладчике на строке RF>
RF>AfxMessageBox(wides);
RF>
RF> программа останавливается, как бы ожидая моего нажатия на кнопку на этот AfxMessageBox. Но AfxMessageBox почему-то не появляется на экране.
RF>В чём причина этого?
Может стоит попробовать явный вызов AfxMessageBoxW — для wide_char символов?
Здравствуйте, Evgeniy Skvortsov, Вы писали:
ES>Разве есть такая функция?
Нет однако. Я сначала плюсанул не поняв сути проблемы.
Какой у ТС проект: Unicode или нет? Похоже, что Юникод, но мне дичайше не нравится вот это:
strcpy(sresinfo,"Запись расчётных значений была осуществлена в файл ");
strcat(sresinfo,sfilenamebrief);
Пожоже ТС не знает , что такое _T(), CW2A, CA2W и иже с ними.
Здравствуйте, Nikolaz, Вы писали:
N>Пожоже ТС не знает , что такое _T(), CW2A, CA2W и иже с ними.
ТС или откровенно тролит, или правда серьезные проблемы с памятью. Про конвертирование символов в разные кодировки уже раза 2 или 3 тут была тема, отвечали все дружно.
Здравствуйте, RussianFellow, Вы писали:
RF>Здравствуйте, Nikolaz, Вы писали:
RF>У меня юникодовский проект.
Тогда вопрос почему не используете для константых строк макро _T() и аналоги строковых функций для TCHAR?
было:
strcpy(sresinfo,"Запись расчётных значений была осуществлена в файл ");
стало:
TCHAR sresinfo[SOME_SIZE];
_tcscpy(sresinfo, _T("Запись расчётных значений была осуществлена в файл "));
Тогда и необходимость в постоянном конвертировании отпадёт.
Здравствуйте, Nikolaz, Вы писали:
N>Тогда вопрос почему не используете для константых строк макро _T() и аналоги строковых функций для TCHAR?
N>Тогда и необходимость в постоянном конвертировании отпадёт.
_T() макро и TCHAR тип — зло.
Они позволяют вам надеяться, что программа будет работать и в UNICODE, и в MBCS.
Шансы что не будет ни там, ни там (кроме HelloWorld).
Как вы объедините TCHAR с utf8?
Не обманывайте себя, объявляйте нужные вам типы.
Без конвертирования не обойтись, особенно в cross-platform.
Здравствуйте, VladFein, Вы писали:
VF>Без конвертирования не обойтись, особенно в cross-platform.
Здесь вроде бы форум по MFC. Поэтому выделенное (насчёт кросс-платформы) — в любом случае неактуально
В действительности — о каком cross-platform разговор, если MFC ориентирован сугубо на M$ Windows...
Здравствуйте, AlexGin, Вы писали:
VF>>Без конвертирования не обойтись, особенно в cross-platform.
AG>Здесь вроде бы форум по MFC. Поэтому выделенное (насчёт кросс-платформы) — в любом случае неактуально AG>В действительности — о каком cross-platform разговор, если MFC ориентирован сугубо на M$ Windows...
Разговор о cross-platform — с точки зрения использования данных (файлов) в разнух системах. Например — JSON. Или XML.
Как (куда) Вы будете его читать в MFC? В TCHAR?