You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>VectOr</strong><br />
Если прикладная задача разрабатывается на Visual C++, то вместо "_export"<br />
необходимо записать "__declspec(dllexport)".<br />
При написании приложения в Delphi может применяться следующая запись.<br />
procedure GetInterfaceVersion; stdcall; export;<br />
Эта функция всегда вызывается перед запуском задачи для сравнения версии<br />
библиотеки MAPACCESS, используемой при написании задачи, и версии библиотеки,<br />
реально установленной в системе. Если версии различаются - задача не будет<br />
выполняться. В этом случае необходимо перетранслировать приложение. Переменная<br />
MAPACCESSVERSION объявлена в файле mapapi.h.<br />
Если прикладная задача для работы с картой использует только функции<br />
интерфейса MAPAPI (не использует классы C++ из библиотеки mapacces), то<br />
возвращаемое значение может равняться 0.<br />
Кроме этой функции задачи первого типа должны иметь функцию вида:<br />
extern "C"<br />
{<br />
long int _ export WINAPI CallMapFunction(long int hmap, TASKPARM * parm);<br />
{<br />
...<br />
}<br />
}<br />
Переменная hmap содержит идентификатор открытой карты. Для задач на С++<br />
эта переменная может быть преобразована к типу (TMapAccess *). Структура<br />
TASKPARM описана в файле mapapi.h.<br />
typedef struct TASKPARM // ПАРАМЕТРЫ ПРИКЛАДНОЙ ЗАДАЧИ<br />
{<br />
long int Language;<br />
// Код языка диалогов (1 -ENGLISH,<br />
// 2 - RUSSIAN, ...)<br />
HINSTANCE Resource; // Модуль ресурсов приложения<br />
const char * HelpName; // Полное имя файла ".hlp"<br />
const char * IniName; // Полное имя файла ".ini" приложения<br />
const char * PathShell; // Каталог приложения (exe,dll,...)<br />
const char * ApplicationName; // Имя приложения<br />
HWND Handle; // Идентификатор главного окна приложения<br />
}<br />
TASKPARM;<br />
Задачи второго типа должны разрабатываться с помощью транслятора Borland<br />
C++ версии 5.02 и выше, так как они используют механизм экспорта классов языка<br />
С++. Но в ходе их выполнения могут использоваться компоненты, разработанные с<br />
помощью других языков программирования.<br />
Кроме функции "GetInterfaceVersion()" задачи второго типа должны содержать<br />
функцию вида:<br />
extern "C"<br />
{<br />
TMapTask * WINAPI_export GreateMapTask(TMapWindow * mapwindow)<br />
{<br />
TMapTask * task<br />
try<br />
{<br />
task = new UserClass(mapWindow);<br />
}<br />
catch<br />
{<br />
task=0;<br />
}<br />
return task;<br />
}<br />
}<br />
79 РАКУРС, 129366, Москва, ул. Ярославская, д.13-А