Сообщество программистов Autodesk в СНГ

ADN Club => ObjectARX => Тема начата: DimVer от 08-01-2025, 23:57:25

Название: ObjectARX и cUrl
Отправлено: 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 отвалится в ближайшее время.
Название: Re: ObjectARX и cUrl
Отправлено: Александр Ривилис от 09-01-2025, 00:07:22
1. Тему разделил.
2. Что такое Visual Studio 2024 - не знаю. Текущая версия 2022.
3. Скорее всего есть ссылка на какую-то dll, которая связана с cUrl. Она должна или быть в путях доступа AutoCAD (например в каталоге с acad.exe) или использовать demandload с этой dll и загружать ее до начала использования.
Название: Re: ObjectARX и cUrl
Отправлено: DimVer от 09-01-2025, 00:10:21
2. да, исправил, имел ввиду 2022.
3. То есть Visual Studio собирает проект, arx модуль, который обращается к сторонней библиотеке, которую Autocad загрузить не может. Правильно понял?
Название: Re: ObjectARX и cUrl
Отправлено: Александр Ривилис от 09-01-2025, 00:12:53
Правильно понял?
Да. Посмотри, возможно с cUrl можно линковать статически. Тогда не нужно будет заботиться о dll.
Название: Re: ObjectARX и cUrl
Отправлено: DimVer от 09-01-2025, 00:27:33
Правильно понял?
Да. Посмотри, возможно с cUrl можно линковать статически. Тогда не нужно будет заботиться о dll.

Спасибо, буду ковырять. Проще наверное снести эту библиотеку из vcpkg и попытаться ручками её добавить.
Название: Re: ObjectARX и cUrl
Отправлено: DimVer от 10-01-2025, 00:43:51
Доброй ночи, с горем пополам собрал библиотеку из исходников, слинковал, слинковал её зависимости. При открытии arx файла в AutoCAD появляется такое сообщение.

(https://i.postimg.cc/HJ34K4SN/image.png) (https://postimg.cc/HJ34K4SN)

Куда ещё можно копать, чтобы победить эту проблему?
Название: Re: ObjectARX и cUrl
Отправлено: Александр Ривилис от 10-01-2025, 00:53:42
DimVer,
Копать в сторону компиляции и линковки с правильной версией MFC.
Название: Re: ObjectARX и cUrl
Отправлено: DimVer от 10-01-2025, 00:55:42
А как понять какая версия MFC правильная? Или в моём случае, просто перебирать, пока не получится?
Название: Re: ObjectARX и cUrl
Отправлено: Александр Ривилис от 10-01-2025, 01:00:45
Версия MFC должна быть такая же, что и при создании проекта при помощи ObjectARX Wizard.
Кроме того у тебя возможно смесь Release и Debug версий библиотек. MFC должно компилироваться и линковаться только в Release, т.к. сам AutoCAD использует Release версию. А у тебя судя по сообщению об ошибке используется Debug версия. Смешивать их нельзя.
Название: Re: ObjectARX и cUrl
Отправлено: DimVer от 10-01-2025, 01:04:26
Специально ничего не менял от создания проекта и до текущего момента. До добавления cUrl все диалоги отлично работали.
Название: Re: ObjectARX и cUrl
Отправлено: DimVer от 10-01-2025, 01:05:21
Кроме того у тебя возможно смесь Release и Debug версий библиотек. MFC должно компилироваться и линковаться только в Release, т.к. сам AutoCAD использует Release версию. А у тебя судя по сообщению об ошибке используется Debug версия. Смешивать их нельзя.
Вот это не знал. То есть даже к DEBUG версии приложения надо линковать RELEASE версию библиотеки?
Название: Re: ObjectARX и cUrl
Отправлено: Александр Ривилис от 10-01-2025, 01:45:00
То есть даже к DEBUG версии приложения надо линковать RELEASE версию библиотеки?
Почти всегда - да.
Название: Re: ObjectARX и cUrl
Отправлено: DimVer от 10-01-2025, 02:43:35
То есть даже к DEBUG версии приложения надо линковать RELEASE версию библиотеки?
Почти всегда - да.
Получилось загрузить RELEASE версию приложения с подсовыванием dll в папку автокад. Статически слинковать получилось, но работать не хочет ни в каком варианте.
Из за одной библиотеки, теряется возможность отлаживать все приложение..
Название: Re: ObjectARX и cUrl
Отправлено: DimVer от 11-01-2025, 04:08:12
Наверное тему можно удалить. Ибо она не от не знания ObjectARX, а от не знания как слинковать библиотеку к проекту.

По итогу перепробовал несколько библиотек, для моих задач будет достаточно и httplib. Если не нужен HTTPS, библиотека добавляется в проект одним .h файлом, и все работает и в DEBUG и RELESE версии.