Файл string\string.cpp
// ---------------------------------------- // Работа с таблицей строк // ----------------------------------------
#define STRICT #include <windows.h>
#include "string.hpp"
// Прототип функции обработки ошибки void Error(void);
#pragma argsused int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { // Буфера для работы со строками BYTE szAppName[20]; BYTE szWindowName[80]; BYTE szMsg[80]; BYTE szBuf[80]; int cb;
// Загружаем строку с идентификатором IDS_APPNAME cb = LoadString(hInstance, IDS_APPNAME, szAppName, sizeof(szAppName));
// Если в буфер записано 0 символов, // это означает, что ресурс не найден. // В этом случае мы вызываем функцию обработки // ошибки и завершаем работу приложения if(!cb) { Error();
return -1; }
// Загружаем строку с идентификатором IDS_WINDOWNAME cb = LoadString(hInstance, IDS_WINDOWNAME, szWindowName, sizeof(szWindowName));
if(!cb) { Error();
return -1; }
// Загружаем строку с идентификатором IDS_MESSAGE cb = LoadString(hInstance, IDS_MESSAGE, szMsg, sizeof(szMsg));
if(!cb) { Error();
return -1; }
// Подготавливаем буфер для вывода сообщения wsprintf(szBuf, szMsg, (LPSTR)szAppName, 1994);
// Выводим сообщение, составленное из строк // и числа 1994 MessageBox(NULL, szBuf, szWindowName, MB_OK | MB_ICONINFORMATION);
return 0; }
// -------------------------------------------- // Функция обработки ошибки загрузки ресурса // -------------------------------------------- void Error(void) { MessageBox(NULL, "Ошибка при загрузке ресурса", "Error", MB_OK | MB_ICONSTOP);
}
В главный файл исходного текста приложения включается include-файл string.hpp (листинг 1.2), в котором описаны символические константы для идентификации строк.