13.01.2015 Views

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

Объектно-ориентированное программирование на С++ - eDrive

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

75<br />

отказ в доступе, EMFILE – много открытых файлов, ENOENT – не <strong>на</strong>йден<br />

путь, ENOEXEC – мало памяти.<br />

В файле заголовка shellapi.h объявле<strong>на</strong> серия полезных функций запуска<br />

приложений без закрытия родительского процесса. Среди них – WinExec,<br />

ShellExecute, CreateProcess и другие. В числе их параметров всегда присутствует<br />

режим ок<strong>на</strong>, который задается константами SW_MINIMIZE,<br />

SW_MAXIMIZE, SW_NORMAL, SW_RESTORE, SW_HIDE. Примеры:<br />

WinExec (“MyFile”, SW_RESTORE);<br />

ShellExecute (Handle, NULL, “MyFile.exe”, NULL, NULL, SW_RESTORE);<br />

ShellExecute (Handle, “open”, “File.doc”, NULL, NULL, SW_RESTORE);<br />

К двоичным файлам относятся, также, растровые файлы, з<strong>на</strong>чки, курсоры<br />

и файлы ресурсов (.RES). Все они просматриваются, создаются и редактируются<br />

графическим редактором Image Editor, доступным через меню<br />

Tools. Редактор достаточно прост в использовании и во многом <strong>на</strong>поми<strong>на</strong>ет<br />

известный редактор Microsoft Paint.<br />

Модули DLL и пакеты<br />

Одним из самых распространенных способов создания модульных приложений<br />

являеся использование библиотек ди<strong>на</strong>мической компоновки DLL и<br />

BPL. Такие библиотеки представляют особый вид выполняемого кода (компилированных<br />

функций, констант, форм, ресурсов), хранящийся в файлах с<br />

расширениями .DLL и .BPL, которые рассчитаны <strong>на</strong> одновременное использование<br />

несколькими программами. Пакеты (package) BPL ос<strong>на</strong>щены средствами<br />

работы с компонентами VCL. Они располагают большей, чем DLL,<br />

информацией о вызывающем приложении, а приложение, в свою очередь,<br />

лучше контролирует поведение связанного модуля. К сожалению BPL обслуживают<br />

только приложения C++Builder, тогда как DLL более универсальны<br />

и работают с любыми приложениями в разных операционных системах.<br />

Модули DLL и BPL можно подключать к приложению статически (design<br />

time mode) и ди<strong>на</strong>мически (runtime mode). Статически загружаемые модули<br />

связываются с главной программой при ее компоновке и остаются загруженными<br />

в память все время, пока выполняется приложение. Такие модули<br />

содержат экспортируемые функции, описание которых помещается в файлы<br />

библиотек импорта LIB – Library Import File, которые также подключаются<br />

<strong>на</strong> этапе компоновки. Ди<strong>на</strong>мически загружаемые модули в процессе работы<br />

при необходимости можно выгружать из памяти, освобождая при этом ре-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!