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

MapSort и gisuvecex.dll

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
MapSort и gisuvecex.dll
 
Здравствуйте уважаемые разработчики "КБ Панорама". Веду разработку 32-х разрядного приложения на Embarcadero C++Builder 10.2 Version 25.0.26309.314 с использованием "GIS ToolKit Free" v.12.5.2.
Столкнулся со следующей проблемой:
Создаю SIT, отображаю его на MapScreen, пытаюсь отсортировать объекты по слоям MapScreen1->MapSort(true,false);
В среде разработки всё адекватно выполняется. Затем я переношу собранную программу на другую машину где нет библиотек GIS ToolKit и ключа.
Помещаю рядом с исполняемым файлом библиотеку gisuacces.dll (куда же без неё) ), запускаю программу и выполняю те же самые действия, в результате которых получаю сообщение об отсутствии gisuvecex.dll.
Поместив рядом с исполняемым файлом gisuvecex.dll и запустив программу получаю ту же самую проблему. Поместив gisuvecex.dll в Windows\System32 получаю тот же результат. Приложение упорно отказывается видеть данную библиотеку.
Сам я её из проекта напрямую не вызываю.
Логи моей программы показывают что последнее действие которое она пыталась выполнить перед сообщением об ошибке gisuvecex.dll была именно сортировка MapScreen1->MapSort(true,false).
Подскажите пожалуйста (как\куда) правильно (подключить\положить) данную библиотеку что бы проект её видел? Заранее спасибо.
 
Для чистоты эксперимента просьба скопировать на чистую машину не только gisuvecex.dll, а весь комплект dll (вместе с файлами с файлами iml, epsg и т.п.), и запустить приложение.
 
Цитата
Для чистоты эксперимента просьба скопировать на чистую машину не только gisuvecex.dll, а весь комплект dll (вместе с файлами с файлами iml, epsg и т.п.), и запустить приложение.
Эксперимент провёл на 2-х машинах Win 7 Pro x32 и x64. Результат тот же, программа настойчиво требует библиотеку.
Изменено: Сергей Алексеев - 15.12.2017 09:04:55
 
Перепроверил на чистой машине. Работает без вопросов.
Просьба сделать простой пример из двух кнопок (открыть и сортировать) и прислать его вместе с exe на адрес gisga@yandex.ru
 
Проблему решил, путём переноса библиотек в папку Lib находящуюся рядом с исполняемым файлом, в которой при компиляции лежали их .lib файлы.
Протестирован на нескольких OC, в результате выяснил, что последние системы требуют таки добавления всех библиотек ядра в папку Win32 и Wow64(при наличии).
Спасибо за Ваш ответ.
 
Ситуация не понятна, особенно с папкой lib. С такой ситуацией сталкиваюсь первый раз.
Есть еще один выход, который должен все это разрулить: использовать метод TGisProperty->mapSetPathShell

procedure mapSetPathShell(Value : string);

Описание:

Метод устанавливает в ГИС-ядре путь к директории приложения, в которой  располагаются общие и вспомогательные файлы для функционирования ГИС-ядра  (библиотеки условных знаков *.iml, файлы базы данных EPSG, wmslist.ini,  xml-схемы и пр.). Путь к данной директории рекомендуется устанавливать при  запуске приложения.


 
Функция procedure mapSetPathShell(Value : string); используется моём приложении для указания GIS ядру пути к файлам БД EPSG, которые лежат в отдельной папке рядом с исполняемым файлом, но практика тестирования на нескольких машинах показала что на dll эта функция не влияет (Если система использует для линковки динамических библиотек путь переданный через mapSetPathShell, то я не очень понимаю как она тогда обращается за ВСЕМ ядром в Win32. А если она пытается подключить dll из Win32, то зачем системе указывать на dll в другом месте?).
Что касается папки Lib:
Эта папка так же лежит рядом с исполняемым файлом и на этапе разработки содержит все подключаемые к проекту *.lib библиотеки + их хидеры *.h. Почему именно в НЕЙ система умудрилась обнаружить  gisuvecex.dll для меня так же остаётся загадкой).
 
После вашего ответа решение нашлось. После того как вы вызываете mapSetPathShell, все dll гис-ядра, базы данных систем координат и другие служебные файлы ищутся строго в директории, которую вы указали. Т.е. в этой директории должен быть полный комплект файлов гис-ядра.
Страницы: 1
Читают тему (гостей: 1)



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

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