Читаем Системное программирование в среде Windows полностью

Для сборки программ можно воспользоваться также такими инструментальными средствами, распространяемыми в рамках проекта программного обеспечения с открытым исходным кодом (GNU), как компиляторы gcc и g++, входящие в состав комплекта инструментов Gnu Compiler Collection (http://gcc.gnu.org/). Читатели, заинтересованные в подобных средствах разработки, должны ознакомиться с действующим на условиях GNU проектом MinGW (http://www.mingw.org), который описывается как "совокупность свободно доступных и свободно распространяемых заголовочных файлов и библиотек импорта, специфических для Windows, объединенных с наборами инструментов GNU, что позволяет создавать программы для среды Windows, не зависящие от динамических библиотек С времени выполнения, выпускаемых третьими сторонами". В то же время, при тестировании большинства примеров программ, приведенных в книге, я эти средства не применял, но весьма успешно использовал возможности MinGW, и мне даже удавалось выполнять межплатформенную сборку для создания исполняемых программ и DLL-библиотек Windows в Linux-системах. Более того, я имел возможность убедиться в чрезвычайно высокой эффективности систем диагностики ошибок и вывода предупреждающих сообщений компиляторов gcc и g++ при разработке 64-разрядных программ.

<p>Структура каталогов</p>

Основной каталог носит название WindowsSmpEd3 (от Windows Sample Programs, Edition 3). Для каждой главы предусмотрен отдельный подкаталог. Все заголовочные файлы находятся в каталоге Include, а в каталоге Utilities содержатся такие часто используемые функции, как ReportError или PrintStrings. Готовые проекты помещены в каталоги Projects6 и Projects7 (для Visual C++ 6.0 и 7.0 соответственно). Исполняемые программы и библиотеки DLL для всех проектов хранятся в каталогах run6 и run7. В каталоге TimeTest содержатся файлы, которые требуются для тестирования производительности программ, описанного в приложении В. Прежде чем мы приступим к описанию содержимого отдельных подкаталогов WindowsSmpEd3, необходимо вкратце рассмотреть остальное содержимое Web-сайта.

<p>Учебные пособия (слайды)</p>

В каталоге Overheads содержатся слайды Power Point. Слайды включены для удобства преподавателей колледжей и университетов, которые захотят воспользоваться материалом книги в курсах своих лекций. Слайды не предназначены для коммерческого использования.

<p>Каталог Utility</p>

В каталог Utility включены семь файлов с исходными кодами служебных функций, которые требуются для примеров программ.

1. Файл ReprtErr.с содержит функции ReportError (программа 2.2) и ReportException (программа 4.1). За исключением программ grep и wc, а также программ, приведенных в главе 1, каждая из программ, запускаемых на выполнение как процесс программами из примеров, нуждается в этом файле.

2. Файл PrintMsg.c содержит функции PrintStrings, PrintMsg и ConsolePrint (программа 2.1). Так как эти функции вызываются функцией ReprtErr.с, то этот исходный файл также требуется почти во всех проектах.

3. Файл Options.с содержит функцию, которая обрабатывает параметры командной строки и часто используется, начиная с главы 2. Включайте этот исходный файл в проект любой программы, в которой используются параметры командной строки. Соответствующий листинг приведен в программе А.7.

4. Файл Wstrings.с содержит исходный код функции wmemchr, используемой в файле Options.с. Включайте этот файл в проекты в соответствии с необходимостью. Также не исключено, что вы захотите добавить и другие функции, предназначенные для работы с обобщенными строками.

5. Файл SkipArg.с обеспечивает обработку командной строки путем пропуска одного поля аргумента при каждом вызове. Его листинг приведен в программе А.8.

6. Файл GetArgs.с содержит функцию, которая преобразует строку символов к виду argc, argv[]. Эта функция полезна при разбиении командной строки на отдельные аргументы, как это делается, например, в случае командной строки, получаемой из функции GetCommandLine, введенной в главе 6. Листинг этого файла приведен в программе А.8.

7. Файл Version.с реализует функцию DllGetVersion для библиотеки DLL, построенной из этих модулей.

Перечисленные функции можно компилировать и компоновать вместе с вызывающими программами. Однако проще скомпоновать их отдельно в виде библиотеки, статической или динамической. В проекте Utility_3_0 эти файлы с исходными кодами используются для создания библиотеки DLL, а в проекте utulityStatic — для создания статической библиотеки.

<p>Каталог Include</p>

В каталоге Include описаны многочисленные файлы. Одни из них используются почти во всех примерах, другие нужны только для одной или двух программ. Перечень наиболее важных файлов приводится ниже.

1. EvryThng.h, как говорит само его название, включает почти все определения, которые требуются для обычных программ, как однопоточных, так и многопоточных. В частности, он включает файлы Envirmnt.h и Support.h. Соответствующий листинг приведен в программе А.1.

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных