Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
Объектно-ориентированное программирование на С++ - eDrive
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 />
при необходимости можно выгружать из памяти, освобождая при этом ре-