На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Сообщение об ошибках от ГИС системы

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Сообщение об ошибках от ГИС системы, Сообщение об ошибках от ГИС системы
 
Добрый. После обновления *.so файлов библиотеки Гис, система става выдавать сообщения с ошибкой (описанием) при вызове метода mapOpenDataUn
Подскажите, как -то можно отключить вывод сообщения (настройки)?

Изменено: Денис Вицко - 03.09.2022 21:26:48 (исправил вставку картинок)
 
Функция mapOpenDataUn открывает, в частности, векторные карты во внутренних форматах ГИС - map, sitx, sit, sitz, mapz, mpt, mptz и так далее.
Формат SXF является обменным форматом и должен быть предварительно преобразован во внутренний формат с помощью функций, описанных в vecexapi.h.

Например:
Код
 // Загрузить (импортировать) карту из файла SXF, TXF или DIR с
 // использованием Select с преобразованием топокарты к зоне документа
 // Файлы SXF и TXF могут хранить координаты в метрах, радианах или градусах
 // hmap    - идентификатор открытой карты (рекомендуется указывать
 //           для определения текущей зоны топокарты) или 0;
 // sxfname - имя загружаемого файла типа SXF, TXF или DIR;
 // rscname - имя файла классификатора, с которым загружается карта,
 //           имя классификатора можно запросить из SXF (TXF) функцией GetRscNameFromSxf
 //           или из карты; для файла DIR может быть 0;
 // mapname - имя создаваемой карты (обычно совпадает с именем SXF (TXF))
 //           или ноль или указатель на пустую строку (буфер размером MAX_PATH
 //           c нулевым байтом равным нулю) или указатель на папку для размещения
 //           карты. Если имя карты не задано или задана только папка, то карта
 //           создается с именем SXF (TXF) и расширением ".sit". Если namemap
 //           указывает на буфер достаточной длины (size), то в буфер записывается
 //           имя созданной карты;
 //           Для файла DIR тип общей карты - MPT (проект данных, включающий все
 //           открытые карты из DIR) или MAP (многолистовая карта);
 // size    - длина буфера, на который указывает переменная namemap, или 0. Обычно длина
 //           равна MAX_PATH_LONG (1024);
 // handle  - идентификатор окна диалога, которому посылаются уведомительные
 //           сообщения (HWND для Windows, CALLBACK-Функция для Linux);
 // select  - фильтр загружаемых объектов и слоев, если необходима выборочная
 //           обработка данных;
 // frscfromsxf - значение флажка "разрешить использование
 //               имени классификатора, указанного в файле sxf"
 // typesit - тип создаваемых карт в проекте MPT при импорте DIR (1- SIT; -1- SITX)
 // password - пароль для создания защищенного хранилища карты (SITX)
 // psize    - длина пароля в байтах
 // transform - признак необходимости трансформировать загружаемую карту в систему координат hmap
 //             (если hmap и transform не равно 0)
 // hevent    - адрес функции обратного вызова для записи в протокол ошибок выполнени программы
 // eventparam - первый параметр функции обратного вызова
 // Для добавления открытой карты в документ необходимо вызвать функцию
 // mapAppendData(hmap, namemap). Если mapname содержит имя карты типа MAP и
 // она содержит хотя бы один лист, то при импорте данных выполняется создание
 // нового листа в карте MAP. В этом случае функция mapAppendData не должна вызываться.
 // При ошибке возвращает ноль

_VECIMP long int _VECAPI ImportFromAnySxfProEx(HMAP hmap, const WCHAR * namesxf,
                                            const WCHAR * namersc,  WCHAR * namemap, long int size,
                                            HMESSAGE handle, HSELECT select, long int frscfromsxf,
                                            long int typesit, const WCHAR * password, long int psize,
                                            long int transform, EVENTLOG hevent, void * eventparam);
 
Цитата
Alexander Volovikov написал:
Подскажите, как -то можно отключить вывод сообщения (настройки)?

Код
  // Разрешить/Запретить выдачу сообщений на экран
  // (серверный режим работы)
  // enable = 0  - запрет выдачи сообщений,
  // Возвращает предыдущее значение флага

_MAPIMP long int _MAPAPI mapMessageEnable(long int enable);
_MAPIMP long int _MAPAPI mapIsMessageEnable();


Но с причиной выдачи сообщений надо бы разобраться...
 
Спасибо за оперативный ответ)
В данном случае, специально такой формат карты (файлы) передаю, чтобы получить ти обработать код ошибки (возврата).
 
Выключил сообщение
mapMessageEnable(0)

Заработало. Однако, хочу заметить, что функция mapMessageEnable должна возвращать _MAPAPI (судя по описанию). В случае, если уже отключен режим отображения сообщений, то возвращает = 0. Я полагаю, это верно?
Изменено: Alexander Volovikov - 04.09.2022 07:53:22
 
MAPAPI - это стандарт вызова функции, соответствует WINAPI (stdcall).

Код возврата функции целочисленный (long int).
Функция возвращает именно то значение, как указано в описании, то есть предыдущее состояние флага:
Цитата
// Возвращает предыдущее значение флага

Цитата
Alexander Volovikov написал:
В случае, если уже отключен режим отображения сообщений, то возвращает = 0. Я полагаю, это верно?
Да.
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности