Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > кодировка MessageBox сообщений из dll


Автор: Predator_2004 24.2.2008, 18:06
Приветствую всех! Проблема в следующем: имеется длл которая выдает MessageBoxы с русскими заголовками, но вместо русских символов выводится какая-то ерунда. Подскажите, в чем дело. Буду признателен за любую помощь!

Автор: marcusmae 24.2.2008, 18:46
Predator_2004, а исходников к длл нету?

Автор: Predator_2004 24.2.2008, 19:30
Есть вот. Вставил необходимые части
Код

#include<windows.h>

typedef unsigned int TCode;

extern "C" __declspec(dllexport) bool ToggleMessage(TCode Id);
bool ToggleMessage(TCode Id)
{
    switch(Id)
    {
    //отработка ошибок
    case ERR_AVI_CREATE:
        {
            MessageBox(NULL,LPCWSTR("Невозможно создать видеофайл!"),NULL,MB_OK | MB_ICONERROR);
            return true;
            break;
        }
    case ERR_AVI_DELETE:
        {
            MessageBox(NULL,LPCWSTR("Невозможно удалить видеофайл!"),NULL,MB_OK | MB_ICONERROR);
            return true;
            break;
        }
    case ERR_AVI_INSUFF_MEMORY:
        {
            MessageBox(NULL,LPCWSTR("Недостаточно памяти для выгрузкаи!"),NULL,MB_OK | MB_ICONERROR);
            return true;
            break;
        }
    case ERR_AVI_INVALID:
        {
            MessageBox(NULL,LPCWSTR("Неверный файл!"),NULL,MB_OK | MB_ICONERROR);
            return true;
            break;
        }
    case ERR_AVI_OPEN:
        {
            MessageBox(NULL,LPCWSTR("Невозможно открыть видеофайл!"),NULL,MB_OK | MB_ICONERROR);
            return true;
            break;
        }
    case ERR_AVI_READ:
        {
            MessageBox(NULL,LPCWSTR("Невозможно прочитать видеофайл!"),NULL,MB_OK | MB_ICONERROR);
            return true;
            break;
        }
    case ERR_COMPONENET_LAUNCH:
        {
            MessageBox(NULL,LPCWSTR("Невозможно запустить компонент!"),NULL,MB_OK | MB_ICONERROR);
            return true;
            break;
        }
    case ERR_COMPONENTS_NUM:
        {
            MessageBox(NULL,LPCWSTR("Не удалось инициализировать компоненты!"),NULL,MB_OK | MB_ICONERROR);
            return true;
            break;
        }
    case ERR_FRAME_SAVE:
        {
            MessageBox(NULL,LPCWSTR("Невозможно сохранить кадр!"),NULL,MB_OK | MB_ICONERROR);
            return true;
            break;
        }
    case ERR_CFG:
        {
            MessageBox(NULL,LPCWSTR("Сбой настроек приложения!"),NULL,MB_OK | MB_ICONERROR);
            return true;
            break;
        }
    //отработка сообщений
    case MSG_AVI_PROC_COMPLETE:
        {
            MessageBox(NULL,LPCWSTR("Видеофайл обработан!"),LPCWSTR("Сообщение"),MB_OK);
            return true;
            break;
        }
    case MSG_CHANGES_SAVE:
        {
            MessageBox(NULL,LPCWSTR("Изменения сохранены!"),LPCWSTR("Сообщение"),MB_OK);
            return true;
            break;
        }
    case MSG_DATA_SAVE:
        {
            MessageBox(NULL,LPCWSTR("Данные сохранены!"),LPCWSTR("Сообщение"),MB_OK);
            return true;
            break;
        }
    case MSG_FRAMES_LOAD:
        {
            MessageBox(NULL,LPCWSTR("Кадровая последовательность загружена!"),LPCWSTR("Сообщение"),MB_OK);
            return true;
            break;
        }
    //отработка предупреждений
    case WRG_DATA_LOSS:
        {
            int iRes=MessageBox(NULL,LPCWSTR("Данные будут потеряны! Продолжить?"),LPCWSTR("Предупреждение"),MB_YESNO | 
                MB_ICONWARNING);
            if(iRes==IDYES) return true;
            else return false;
            break;
        }    
    }
}

BOOL APIENTRY
 DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
 {
   return TRUE;
 }

]

Автор: 586 24.2.2008, 20:10
Цитата(Predator_2004 @  24.2.2008,  19:30 Найти цитируемый пост)
case ERR_AVI_CREATE:
        {
            MessageBox(NULL,TEXT("Невозможно создать видеофайл!"),NULL,MB_OK | MB_ICONERROR);
            return true;
            break;   // после return - лишнее
        });


Автор: Predator_2004 24.2.2008, 20:37
Спасибо!!!!!!! Работает!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)