بسم الله الرحمن الرحيم


А затем:

Unicode

По мере распространения информационных технологий в обществах в которых английский язык не является и ни первым, и ни вторым языком, а занимает довольно более скромные позиции, всё больше используется двухбайтовая кодировка Unicode и её разновидности, например UTF-8. Даже бесплатные IDE и компиляторы для таких языков как C++ уже позволяют писать код для Win32 API в Unicode значительно облегчая труд лингвиста-программиста.

Unicode test

Ниже приведён код С++ использующий Unicode прямо в коде и написанный на IDE Code::Blocks 10.05

Файл main.cpp

Файл main.cpp - в нём используется Unicode. Обратите внимание на объявление #define UNICODE во второй строчке кода и на букву L в строчке MessageBox(hwndDlg, L"اللغة العربية русский и арабский", L"اللغة العربية русский и арабский", MB_ICONINFORMATION);

#define WIN32_LEAN_AND_MEAN
#define UNICODE
#include <windows.h>

#include "resource.h"

HINSTANCE hInst;

BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_INITDIALOG:
return TRUE;

case WM_CLOSE:
EndDialog(hwndDlg, 0);
return TRUE;

case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_BTN_QUIT:
EndDialog(hwndDlg, 0);
return TRUE;

case IDC_BTN_TEST:
MessageBox(hwndDlg, L"اللغة العربية русский и арабский", L"اللغة العربية русский и арабский", MB_ICONINFORMATION);
return TRUE;
}
}

return FALSE;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
hInst = hInstance;

return DialogBox(hInstance, MAKEINTRESOURCE(DLG_MAIN), NULL, (DLGPROC)DialogProc);
}

Файл resource.h

#include <windows.h>
#define DLG_MAIN 101

#define IDC_BTN_TEST 1001
#define IDC_BTN_QUIT 1002

Файл resource.rc

#include "resource.h"

DLG_MAIN DIALOGEX 6, 5, 194, 106

CAPTION "Unicode test"

FONT 8, "Tahoma"

STYLE 0x10CE0804

BEGIN
CONTROL "&Test", IDC_BTN_TEST, "Button", 0x10010000, 138, 5, 46, 15
CONTROL "&Quit", IDC_BTN_QUIT, "Button", 0x10010000, 138, 29, 46, 15
END


 

А.М.Яшуков , февраль 2011 года.