Сообщество программистов Autodesk в СНГ
ADN Club => ObjectARX => Тема начата: DimVer от 08-01-2025, 23:57:25
-
Добрый день, дабы не плодить темы, но вроде бы мой вопрос подходит. Обновил Visual Studio 2022 на Microsoft Visual Studio Community 2022 (64-bit) - Current
Version 17.12.3. И с помощью vcpkg добавил в проект cUrl библиотеку. .arx файл собирается, но Автокад отказывается его загружать: "Unable to load vel.arx file".
Тестирую на Autocad 2024. Подскажите пожалуйста как разрешить проблему? Как я понимаю назад уже не откатиться, да и не хочется, Copilot отвалится в ближайшее время.
-
1. Тему разделил.
2. Что такое Visual Studio 2024 - не знаю. Текущая версия 2022.
3. Скорее всего есть ссылка на какую-то dll, которая связана с cUrl. Она должна или быть в путях доступа AutoCAD (например в каталоге с acad.exe) или использовать demandload с этой dll и загружать ее до начала использования.
-
2. да, исправил, имел ввиду 2022.
3. То есть Visual Studio собирает проект, arx модуль, который обращается к сторонней библиотеке, которую Autocad загрузить не может. Правильно понял?
-
Правильно понял?
Да. Посмотри, возможно с cUrl можно линковать статически. Тогда не нужно будет заботиться о dll.
-
Правильно понял?
Да. Посмотри, возможно с cUrl можно линковать статически. Тогда не нужно будет заботиться о dll.
Спасибо, буду ковырять. Проще наверное снести эту библиотеку из vcpkg и попытаться ручками её добавить.
-
Доброй ночи, с горем пополам собрал библиотеку из исходников, слинковал, слинковал её зависимости. При открытии arx файла в AutoCAD появляется такое сообщение.
(https://i.postimg.cc/HJ34K4SN/image.png) (https://postimg.cc/HJ34K4SN)
Куда ещё можно копать, чтобы победить эту проблему?
-
DimVer,
Копать в сторону компиляции и линковки с правильной версией MFC.
-
А как понять какая версия MFC правильная? Или в моём случае, просто перебирать, пока не получится?
-
Версия MFC должна быть такая же, что и при создании проекта при помощи ObjectARX Wizard.
Кроме того у тебя возможно смесь Release и Debug версий библиотек. MFC должно компилироваться и линковаться только в Release, т.к. сам AutoCAD использует Release версию. А у тебя судя по сообщению об ошибке используется Debug версия. Смешивать их нельзя.
-
Специально ничего не менял от создания проекта и до текущего момента. До добавления cUrl все диалоги отлично работали.
-
Кроме того у тебя возможно смесь Release и Debug версий библиотек. MFC должно компилироваться и линковаться только в Release, т.к. сам AutoCAD использует Release версию. А у тебя судя по сообщению об ошибке используется Debug версия. Смешивать их нельзя.
Вот это не знал. То есть даже к DEBUG версии приложения надо линковать RELEASE версию библиотеки?
-
То есть даже к DEBUG версии приложения надо линковать RELEASE версию библиотеки?
Почти всегда - да.
-
То есть даже к DEBUG версии приложения надо линковать RELEASE версию библиотеки?
Почти всегда - да.
Получилось загрузить RELEASE версию приложения с подсовыванием dll в папку автокад. Статически слинковать получилось, но работать не хочет ни в каком варианте.
Из за одной библиотеки, теряется возможность отлаживать все приложение..
-
Наверное тему можно удалить. Ибо она не от не знания ObjectARX, а от не знания как слинковать библиотеку к проекту.
По итогу перепробовал несколько библиотек, для моих задач будет достаточно и httplib. Если не нужен HTTPS, библиотека добавляется в проект одним .h файлом, и все работает и в DEBUG и RELESE версии.