Возникла проблема при использовании функция для открытия MAP-файлов (mapOpenData или mapOpenMap): при первом вызове функции всё нормально, идентификатор получен, можно работать. Если карту закрыть (mapCloseData или mapCloseMap), а потом опять открыть, то появится сообщение о невозможности найти shape.iml. Также программа случайным образом падает при вызове библиотечной функции открытия карты. Для тестирования я написал небольшую программу, которая открывает\закрывает конкретную карту, лежащую рядом с исполняемым файлом.
Что уже опробовано: 1. mapSetPathShell -- не помогло, по умолчанию mapGetPathShell возвращает application directory, где и лежит карта 2. mapSetCommonRscPath -- не помогло, а mapGetCommonRscPath по умолчанию возвращает пустую строчку 3. манипуляции с полным именем файла, экранированием слешей и т.п. также ничего не дали
Используется следующий стек: c++11, msvc2013, qt5.5.1, windows 10, gis toolkit 12 Архив с текстом, библиотекой и картой находится по ссылке https://yadi.sk/d/4NJNkXdf39qeq8
Приложение mapviewer позволяет открывать карты, растры, матрицы и демонстрирует работу различных режимов и задач. Проблем с открытием данных нет.
Здравствуйте, Дмитрий.
Хотел бы уточнить, что несмотря на то, что ОС x64 библиотеку я использую x32. Во-вторых, судя по коду, идеология использования функций открытия\закрытия у меня такая же, как и в вашем примере: сначала mapOpenData, затем mapCloseData и очищение hMap. Это-то настораживает. Может ли причина ошибки заключаться в том, что файлы карты был изначально получен из SXF с помощью ImportAnySXF?
P.S. в вашем mapviewer карта из архива нормально переоткрывается, но появляется сообщение о невозможности найти OSM.p3d, чего раньше не было.
Попробуйте на этом же приложении mapviewer с библиотеками GTK-12 x32. С открытием карт проблем не наблюдаю.
В состав исходных текстов приложения mapviewer входит проект для библиотек GTK-12 x32 - \TestVC_x64_vs2008\source\mapviewer.vcproj. Можно добавить в решение VS2008 проект \TestVC_x64_vs2008\source\mapviewer.vcproj и получить выполняемый модуль на этих же текстах для платформы x32.
Поправили shape.iml. Архив с обновленными библиотеками GTK-12 x32 выложили на сайт gislib12x32.zip
Проблема всё ещё не решена, новый shape.iml не убрал сообщение об ошибке.
P.S. собранное приложение MapViewer 32-х битовой разрядности так же выводит сообщение о ненайденном shape.iml, хотя он лежит рядом с исполняемым файлом (и на всякий случай -- рядом с открываемой картой).