Как создать exe файл в visual foxpro

Обновлено: 25.06.2022

ГЛАВА 13
Управление проектом и создание приложения

Мы рассмотрели создание форм, отчетов, запросов, перекрестных таблиц,диаграмм и меню. Каждый из этих компонентов проекта можно запуститьна выполнение. Что же еще необходимо сделать, чтобы все объекты, включенные в создаваемый нами проект, функционировали как единое целое?Это мы сейчас и рассмотрим.

Определение свойств окна проекта

При работе с файлами, размещенными в проекте, для их открытия и запуска на выполнение мы использовали кнопки Modify (Модифицировать),Browse (Обзор) и Run (Запустить) окна проекта. Visual FoxPro позволяет дляэтих целей использовать также мышь. При этом выполняемое действие определяется параметрами, установленными на вкладке Project (Проект) диалогового окна Options (Параметры) (рис. 13.1), вызываемого командойOptions (Параметры) из меню Tools (Сервис).

Используя опции области Project double-click action (Действия, выполняемыепри двойном щелчке в проекте) этого диалогового окна, вы можете указатьдействие, выполняемое при двойном щелчке на имени компонента. Поумолчанию установлен признак модификации выбранного компонента проекта, поэтому после двойного щелчка на нем вызывается конструктор, используемый при модификации файла данного типа.

Вы можете установить опцию Run selected file (Запустить выбранный файл).В этом случае при двойном щелчке на имени файла он будет запускаться.Таблица при двойном щелчке будет открываться в режиме Browse (Обзор)для просмотра содержащихся в ней записей.

Если в диалоговом окне Options (Параметры) установлен флажок Prompt forWizard (Запрос мастеров), при создании нового компонента проекта открывается диалоговое окно с запросом об использовании мастера для его создания. Если этот флажок не установлен, то сразу будет вызываться конструктор, соответствующий создаваемому объекту.

Чтобы настроить основные параметры управления проектом, вы можете использовать флажки области Source control options (Параметры хранилища данных), предназначенные для управления крупным проектом, выполняемым группой разработчиков. Назначение установки флажков описано втабл. 13.1.

Разработчики и руководители отделов информатизации всегда испытывали смешанные чувства к FoxPro , теперь Visual FoxPro. Для некоторых FoxPro - вся жизнь. Для других - эти взаимоотношения напоминают борьбу с Терминатором, никак не помрет. Для того, чтобы еще больше затуманить ситуацию Microsoft включила в состав последней версии целый набор всякого рода усовершенствований, что позволит пожару дискуссий полыхать в обоих лагерях.

API (Application Programming Interface) - это интерфейс программирования приложений, термин, часто упоминаемый разработчиками программного обеспечения. Если разрабатываемое вами приложение имеет функцию, позволяющую обращаться к нему из других приложений, то это - API вашего приложения. Параметры, которые принимает ваша функция, образуют её API, так как они являются средством, при помощи которого другие приложения взаимодействуют с данной функцией. Операционная система Windows предоставляет большой набор функций, позволяющих различным приложениям, в том числе и приложениям Visual FoxPro, обмениваться информацией с Windows на достаточно низком уровне. Эти функции принято называть Windows API. Использование Windows API в приложениях Visual FoxPro позволяет реализовать возможности, недостижимые стандартными средствами языка.

В этом разделе вы познакомитесь с некоторыми полезными Windows API функциями. Для каждой функции сначала приводится её прототип на Си, а затем - объявление на Visual FoxPro и примеры использования.

Технология компиляции EXE в Visual FoxPro довольно проста. Мы не будем отвлекаться на такие экстремальные методы как ввод в командном окне команд типа BUILD PROJECT, BUILD APP, BUILD EXE, а ограничимся удобствами, предоставляемыми графическим интерфейсом VFP. Итак, для создания EXE нам понадобится нажать в менеджере проекта кнопку "BUILD. ". Выбрав в открывшемся диалоговом окне опцию Win32 executable / COM server (EXE) давим OK. ВСЕ. ;-) Теперь о грустном.

Вы вероятно уже знаете, что для того, чтобы определить как именно (какой командой) в Excel можно сделать то или иное проще всего выполнить это действие прямо в Excel с одновременной записью Ваших действий. Для этого выбирается пункт меню Excel с именем "Сервис" - "Макрос" - "Начать запись". В появившемся окне указываем имя макроса (по умолчанию "Макрос1") и нажимаем кнопку "Ok". В результате, поверх листа Excel появляется маленькое специфическое окошко - ToolBar - с именем "Остановить запись" и все Ваши действия будут автоматически записываться.

Компания Microsoft, выполняя обещание обеспечить доступ к своим приложениям из Internet, начнет с того, что вскоре предоставит возможность привязки прикладных систем сервера FoxPro ко многим типам Web-браузеров.

Конечной целью разработки приложения является создание одного (или нескольких) EXE-файла. Но это то, что должно получиться в результате. А на этапе его создания мы имеем большую кучу самых разных файлов (формы, запросы, программные модули, классы и т.п.).

Речь пойдет в основном о SQL select с предложениями outer left/right join, union и использовании групповых функций.

В большинстве случаев основным звеном программы является форма. Именно посредством форм пользователь оперирует данными - вводит и модифицирует их. По большому счёту, форма - вот и всё что видит пользователь проводимое за работой с программой время. Поэтому создатель программы должен уделять формам достойное внимание. Рассмотрим поподробнее работу с формами, свойства, методы и события форм, а также связанные с этим неочевидные подробности.

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

CodeNet - все для программиста. Начиная от программирования для Web, заканчивая системным программированием. Большое количество документации по программированию видеоадаптеров, звуковых карт. Описане форматов файлов. Все с очень хорошими - понятными примерами. И многое другое.

Как уже отмечалось выше, язык VFP это сильно дополненный и расширенный язык xBase. В Visual FoxPro язык программирования объектно-ориентированный, то есть базовой конструкцией языка является понятие класса. Исходный же вариант xBase это чистейший структурный язык, с базовым понятием процедур и функций. Таким образом, современный язык программирования Visual FoxPro допускает совмещать как и программирование "по старинке" описанием массы процедур, так и в стиле ООП, создавая сложную иерархию классов.

Файл базы данных состоит из записи заголовка и записей с данными. В записи заголовка определяется структура базы данных и содержится вся другая информация, относящаяся к базе данных. В файле она начинается с нулевой позиции. Записи с данными (*) следуют за заголовком (байты располагаются последовательно) и включают в себя фактическое содержимое полей. Длина записи (в байтах) определяется суммированием.

Файл типа memo содержит одну запись заголовка и произвольное число блочных структур. В записи заголовка располагается указатель на следующий свободный блок и размер блока в байтах. Размер устанавливается командой SET BLOCKSIZE при создании файла. Запись заголовка начинается с нулевой позиции файла и занимает 512 байтов. За записью заголовка следуют блоки, в которых содержатся заголовок блока и.

В индексных файлах располагается одна запись заголовка и одна или больше записей вершин. В записи заголовка находится информация о корневой вершине, текущем размере файла, длине ключа, особенностях индекса и сигнатура, а также представление ключа* в коде ASCII, которое можно вывести на печать, и выражения FOR. Запись заголовка начинается с нулевой позиции файла. Во всех других записях вершин содержится.

Все составные индексы являются компактными. Для того, чтобы отслеживать в файле типа .CDX все теги, применяется единая файловая структура. Эта структура идентична структуре компактного индексного файла за одним исключением - вершины-листья на самом нижнем уровне данной структуры ссылаются на один из тегов в составном индексе. Все теги в индексе имеют свою собственную завершенную структуру, которая.

Технология компиляции EXE в Visual FoxPro довольно проста. Мы не будем отвлекаться на такие экстремальные методы как ввод в командном окне команд типа BUILD PROJECT, BUILD APP, BUILD EXE, а ограничимся удобствами, предоставляемыми графическим интерфейсом VFP.

Итак, для создания EXE нам понадобится нажать в менеджере проекта кнопку "BUILD. ". Выбрав в открывшемся диалоговом окне опцию Win32 executable / COM server (EXE) давим OK. ВСЕ. ;-)

"Как все?"-- спросите Вы -- "А указать под каким именем сохранить файл?"

Согласен. Надо указать обязательно, иначе все насмарку.

Кстати, думаю, что нелишним будет напомнить о том, что для того чтобы процесс компиляции прошел успешно необходимо менеджер проекта заполнить файлами Вашей программы, один из которых обязательно должен быть как main (в менеджере проектов имя этого файла выделено жирным шрифтом), т.е. файл который будет исполнен первым. По умолчанию как main-программа устанавливается первый включенный в проект программный файл (*.prg) или файл формы (*.scx).

Вобщем все довольно просто! Просто.

Теперь о грустном.

1.2 Сопутствующие файлы

Все перепетии этапа компиляции приложения уже позади, и Вы, гордый от сознания собственного превосходства над простыми смертными, семимильными шагами несетесь к заказчику, устанавливаете свое приложение, попутно расписывая ему(заказчику) как теперь у него все будет круто, и подсчитывая в уме какой винт нужно купить, что бы осталось на пиво, вдруг натыкаетесь на то, что Ваша супер-пупер прога не фурычит. Грустно. Обидно. А главное не будет у Вас нового вичестера или Чего Вы Там Себе запланировали купить с гонорара.

Все дело в том, что скомпилированный нами .exe не есть самодостаточным исполняемым файлом. Для нормальной работы этому псевдо-исполняемому файлу необходимы библиотеки поддержки (.dll). Я не буду сильно вдаваться в рассуждения об этом, а просто приведу названия файлов, необходимых для нормальной работы приложения.

В принципе до 6-й версии включительно для переноса приложения на клиентскую машину можно использовать штатный Setup Wizard, который самостоятельно все прописывает, а в последующих --InstallShield (или другой инсталятор).

Указанный выше набор библиотек необходимо разместить в каталоге программы или в системном каталоге Windows. Для различных версий Windows эти каталоги различны:

2.Что нужно включить в EXE

Все изложенное ниже является личным мнением автора, которым Вы можете пренебречь. Но делая по-своему помните: биться головой в бетонную стену гораздо больнее, чем воспользоваться проломом сделаным до Вас.

По умолчанию в готовый .exe включаются все файлы, необходимые для работы приложения - программы, формы, меню, библиотеки, классы и т.д. кроме файлов баз данных и таблиц (такие файлы можно узнать по перечеркнутому кружочку возле имени файла в менеджере проекта). Все включенные в .exe файлы после компиляции станут немодифицируемыми (доступными только для чтения). Понятно, что файлы таблиц (*.dbf) включать не стоит поскольку они подвергаются постоянным операциям изменения-дополнения данных, но иногда бывают случаи когда необходимо скрыть какие-либо статическиеданные от пользователя, но обеспечить доступ к ним самой программы. Лучшего места чем "внутренности" exe-шника не придумать.

Так же довольно нередкая ситуация, когда нужно "находу", или временно, изменить файл отчета, или когда имеем целый набор отчетов, уникальных для каждого пользователя. Ну в самом деле представьте: десять операторов и каждому по десять отчетов и все это в *.exe. единственным выходом в этой ситуации будет исключить эти отчеты из конечного файла и поставлять их вместе с приложением.

В любом случае решение о том какие файлы исключить, а какие оставить за Вами.

Подскажите пожалуйста можно ли сделать самостоятельный exe файл, который можно будет запускать на любом компьютере?
На данный момент то, что сделала я выдает ошибку. При запуске видимо пытается запустить Visual FoxPro, которого там нет.

Создание самостоятельного .EXE
Подскажите плиз как можно создать самостоятельны .exe файл в Microsoft Visual Studio 2008. Проект.

Создание самостоятельного приложения, работающего без среды Matlab
Здравствуйте. Необходимо создать приложение, работающее вне среды MatLab. Чтобы запустил на любом.

Запуск самостоятельного исполняемого файла, Visual C++ и OpenGL
У меня программа запускается только из C++, а самостоятельно экзешник не запускается. Что надо.

Создание exe-файла
что нужно указать в опциях проекта, чтобы прикомпилить vcl60?

А какая версия VFP?
И, если я не ошибаюсь, потребуется наличие определённых библиотек (.DLL). Без них работать не будет.

Добавлено через 1 минуту

ошибка должна быть внятная - должно быть написано, чего именно не хватает!
Покажите скриншот ошибки. (ну и ещё можно выложить свой EXE файл)

какие именно длл и где их скачать?
ошибка звучит "Visual FoxPro cannot start. Could not load resources"
у меня было подозрение что я может как-то не так скомпилировала и этот ехе-файл не "самодостаточный" и потому не хочет работать на компе на котором нет Visual FoxPro

А вообще, делать отдельные EXE-шники для VFP - дело весьма неблагодарное.

спасибо. но это действительно не вариант. надо было написать по-быстрому небольшую прожку а основные команды фокса я знаю без памяти на память ). оказалось там 64-хбитная машина. обычный фокс не подошнл. переделала под вижуал а он оказывается с прибабахами. прийдется выкручиваться по другому. обидно.
может так навскидку подскажете чем попроще проанализировать строки и почистить текстовый файл от разного мусора?

может так навскидку подскажете чем попроще проанализировать строки и почистить текстовый файл от разного мусора?


p.s. Если у Вас уже есть доступ к личным сообщаниям, то напишите мне в личку, что у Вас за задача, что за мусор чистите.

Добавлено через 1 час 51 минуту

При построении проекта Visual FoxPro просматривает все компоненты, перечисленные в нем, и формирует проект. Например, в проект должнывключаться все программы, формы и отчеты, которые вызываются при выборе пунктов меню. Если какие-либо компоненты вызывают в свою очередьдругие компоненты, то они также включаются в проект.Для создания проекта нажмите кнопку Build (Построить) в окне проектаили выберите команду Build (Построить) из меню Project (Проект). На экране открывается диалоговое окно Build Options (Опции построения)(рис. 13.7), содержащее пять опций следующего назначения:

  • Rebuild project (Перестроить проект) — собирает проект, проверяя наличие в нем всех необходимых файлов;
  • Application (app) (Приложение) — создает исполняемое приложение срасширением АРР. Данный файл может запускаться на выполнение вVisual FoxPro командой Do (Выполнить) из меню Program (Программа);
  • Win32 executable/COM server (exe) (Исполняемый файл) — создает исполняемое приложение с расширением ЕХЕ. Данный файл может запускаться на выполнение как в главном окне Visual FoxPro, так и вне егопри наличии соответствующих библиотек;
  • Single-threaded COM serve (dll) (Однопоточный СОМ-сервер) — создаетоднопоточную динамическую библиотеку (Dynamic Link Library) с расширением DLL;
  • Multi-threaded COM server (dll) (Многопоточный СОМ-сервер) — создаетмногопоточную динамическую библиотеку (Dynamic Link Library) с расширением DLL.

Рис. 13.7. Диалоговое окно Build Options

В диалоговом окне Build Options (Опции построения) расположены флажки,позволяющие задать параметры создаваемого проекта:

  • Recompile All Files (Обновлять все файлы) — устанавливается для обновления всех компонентов проекта. По умолчанию обновляются только текомпоненты проекта, которые были изменены после предыдущего построения;
  • Display Errors (Показывать ошибки) — при установке флажка после завершения построения проекта на экране появляется диалоговое окно(рис. 13.8), сообщающее об ошибках, встретившихся в процессе построения. Если флажок не установлен, ошибки построения можно просмотреть, выполнив команду Errors (Ошибки) из меню Project (Проект);
  • Run After Build (Запустить после построения) — флажок устанавливается втом случае, если необходимо запустить приложение сразу после создания;
  • Regenerate Component IDs (Перестроить идентификаторы Automation-серверов) — флажок устанавливается в том случае, если необходимо установить и регистрировать Automation-серверы, содержащиеся в проекте.

Кнопка Version (Версия) открывает одноименное диалоговое окно, в котором можно указать информацию о номере и типе версии приложения.

Флажок Regenerate Component IDs (Перестроить идентификаторы Automation-серверов) доступен только при установленной опции Win32 executable/COMserver (Исполняемый файл), Single-threaded COM server (ОднопоточныйСОМ-сервер) Multi-threaded COM server (Многопоточный СОМ-сервер).

Рис. 13.8. Диалоговое окно, сообщающее об ошибках,возникших при построении приложения

Для построения проекта выберите опцию Rebuild Project (Перестроить проект) и нажмите кнопку ОК. В появившемся запросе о необходимости сохранения проекта выберите значение Yes (Да).

Если в процессе построения проекта диспетчер проектов обнаружит компонент, не описанный в проекте, на экране появится диалоговое окно LocateFile (Определение файла), содержащее имя ненайденного файла.Для поиска компонента нажмите кнопку Locate (Определить) и найдите надиске необходимый файл. Вы можете проигнорировать данную ошибку.В этом случае нажмите кнопку Ignore (Игнорировать).

Список всех обнаруженных ошибок сохраняется в файле, имя которого совпадает с именем файла проекта и имеет расширение ERR.

Когда все требуемые компоненты включены в проект, вы можете создать исполняемый файл, установив в диалоговом окне Build Options (Опции построения) опции Application (Приложение) или Win32 executable/COM server (exe)(Исполняемый файл). Для создания файла с расширением АРР, который может запускаться на выполнение из программы Visual FoxPro, необходимо использовать опцию Application (Приложение). В том случае, если вы хотитесоздать файл с расширением ЕХЕ, который может запускаться автономно, воспользуйтесь опцией Win32 executable/COM server (exe) (Исполняемый файл).

После создания приложения с установленной опцией Build Options опцииApplication (Приложение) или Win32 executable/COM server (exe) (Исполняемый файл) вы можете запустить его, используя команду DO, введенную вокне Command Visual FoxPro или командой Do (Выполнить) из менюProgram (Программа). При выполнении этой команды открывается диалоговое окно Do (Выполнить). Откройте в нем нужную папку, в списке файловвыберите созданный вами файл проекта, имеющий расширение АРР, и нажмите кнопку Do (Выполнить).

Для выполнения приложения, созданного с опцией Win32 executable/COM server (exe) (Исполняемый файл), вы должны иметь доступ к динамическимбиблиотекам Vfp7.dll и Vfp7enu.dll.

Читайте также: