Операционная система Microsoft Windows 3.1 для программиста -том 1


Приложение SMETRICS - часть 2


// =========================================== // Функция WinMain // ===========================================

#pragma argsused int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { FILE *out; // файл для вывода int i; // рабочий счетчик char buf[80]; // рабочий буфер

// Открываем выходной файл для вывода // текста потоком // Если открыть файл не удалось, выводим // сообщение об ошибке if ((out = fopen("sysmet.txt", "wt")) == NULL) { MessageBox(NULL, "Не могу открыть файл sysmet.txt", "Ошибка", MB_OK | MB_ICONSTOP); return 1; }

// Выводим заголовок файла fputs("* ================================= *\n", out); fputs("* SYSMETRICS, (C) Frolov A.V., 1994 *\n", out); fputs("* ================================= *\n\n", out);

// Перебираем в цикле всю таблицу констант // Для каждой константы определяем соответствующую // метрику и формируем текстовую строку for(i=0; i < sizeof(SMTable)/sizeof(SMTable[0]); i++) { sprintf(buf, "%s\t = %d\n", SMTable[i].String, GetSystemMetrics(SMTable[i].Const));

// Выводим строку в файл fputs(buf, out); }

// Закрываем файл fclose(out);

MessageBox(NULL, "Системные метрики Windows записаны " "в файл sysmet.txt", "SYSMETRIC", MB_OK);

return 0; }

В приложении SMETRICS определен массив структур SMTable, в котором для каждой константы хранится ее символическое имя в виде текстовой строки.

Алгоритм работы понятен без дополнительных объяснений. Заметим только, что мы впервые в приложении Windows использовали функции для работы с файлами. Возможно, мы вас немного порадуем, сообщив, что для работы с файлами вы по- прежнему можете использовать хорошо знакомые вам из MS-DOS функции потокового ввода/вывода. Действительно, функции потокового ввода/вывода будут работать в приложениях Windows. Однако лучше использовать специальные функции файлового ввода/вывода, которые мы рассмотрим позже, в одном из следующих томов "Библиотеки системного программиста".




Начало  Назад  Вперед



Книжный магазин