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

ADN Club => ObjectARX => Тема начата: YK@7000 от 27-11-2016, 23:44:24

Название: ObjectARX и Visual Studio 2015 Express
Отправлено: YK@7000 от 27-11-2016, 23:44:24
Здравствуйте!

Хотел бы попробовать себя в разработке приложений под Autocad с использованием ObjectArx

Скачал с сайта Autodesk ObjekARX 2017. Попробовал скомпилировать в VisualStudio 2015 Express некоторые примеры поставляемые с библиотекой. При компиляции в режиме отладки получаю ошибку

Цитировать
Error   C2338   /RTCc rejects conformant code, so it isn't supported by the C++ Standard Library. Either remove this compiler option, or define _ALLOW_RTCc_IN_STL to acknowledge that you have received this warning.   viewgeom   C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\yvals.h   112

Компиляция Release проходит без ошибок но вот при попытке закрузить arx файл в Autocad 2017 получаю сообщение о том что файл
Цитировать
incompatible with this version of AutoCAD

Подскажите please в чем проблема. Сопутвующий вопрос - можно ли для разработки с ObjectARX использовать express версию Visual Studio или что нибудь альтернативное, например Qt или Eclipse или он (ObjectARX) "заточен" только под полноценную версию Visual Studio

Зараннее благодарен
С уважением
YK@7000
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 27-11-2016, 23:48:35
Подходит VS 2015 Community Edition (она тоже бесплатная)
Надеюсь, что проверяешь в AutoCAD 2017, и при компиляции выбрана правильная разрядность (Win32/x64).
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: YK@7000 от 28-11-2016, 00:59:36
Александр, спасибо большое за отклик и подсказку!!!

Цитировать
и при компиляции выбрана правильная разрядность (Win32/x64)

Ну да точно.... чегойто я притормозил (как стыдно :)) и на автомате поставил x86

Но вот по компиляции в Debug вопрос остается открытым. Все то же сообщение о Error   C2338

Цитировать
Подходит VS 2015 Community Edition (она тоже бесплатная)
Есть всетаки разница что ставить Community или Express?

Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 28-11-2016, 01:28:32
Есть всетаки разница что ставить Community или Express?
Да. Community - это полноценная версия, с оптимизированным компилятором и содержащая MFC, в отличии от Express.
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 28-11-2016, 01:31:05
По поводу ошибки компиляции - завтра гляну. Уточни какой именно пример проверял.
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 28-11-2016, 10:44:29
Откомпилировал несколько примеров в Debug и x86 и x64 без никаких сообщений об ошибках. VS 2015 Community Edition.
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: YK@7000 от 28-11-2016, 13:00:18
Попробую вечером другие примеры откомпилировать.
Тот о котором речь viewgcom_dg
Я делал в Express , может быть  в этом проблема?
Поставлю Community попробую
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 28-11-2016, 13:25:22
Тот о котором речь viewgcom_dg
Я так и догадался. В VS 2015 Community Edition он компилируется у меня идеально во всех конфигурациях (Release/Debug x86/x64).
Скорее всего это проблема с Express.
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: YK@7000 от 28-11-2016, 23:06:23
Поставил сегодня Community (Express правда не сносил)
Попробовал еще пару примеров, кроме вышеупоминавшегося. Увы Debug (x86/x64) выдает все ту же ошибку
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: YK@7000 от 28-11-2016, 23:30:24
Вот еще пришла мысль. А обязательно ли должен быть установлен Wizard?
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 28-11-2016, 23:55:53
YK@7000
Wizard точно роли не играет. Устанавливал VS в полном объеме? Возможно что-то недоустановлено. Ну и перекачай ObjectARX и установи по новой, удалив старый - возможно берётся мусор от старой компиляции.
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: YK@7000 от 29-11-2016, 00:36:35
Нет, устанвливал не вполном объеме. Не устанавливал то что касается мобильных устройств и web, а также F#. Для C++ выбрал всё. Попробую завтра вечером (или после послезавтра) снести community и express, а потом установить только community. Я посмотрел эта ошибка указывает на хэдер C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\yvals.h Может быть они отличаются у комьюнити и у экспресс, но при установке комьюнити при установленном уже экспрессе, он не был перезаписан

Ниже даю содержание этого файла, который у меня. Если будет время, настроение, а самоеглавное - желание сравнить с тем что установлен в вашей студии

Извините, вам запрещён просмотр содержимого спойлеров.
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 29-11-2016, 00:49:15
Почитай пока у меня в подписи о форматировании кода на форуме.
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 29-11-2016, 17:07:10
Я не знаю откуда ты брал VS 2015 Community. Попробуй вот эту версию (без всяких обновлений и запрети обновления):
Извините, вам запрещён просмотр содержимого спойлеров.

У меня установлена именно эта версия, правда потом я устанавливал Update 1, но и до него проблем с компиляцией ObjectARX-овских примеров не было.
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 29-11-2016, 17:28:08
yvals.h отличается и очень сильно. И в частности как раз в сообщении об ошибке:

(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fimg-fotki.yandex.ru%2Fget%2F198569%2F7842324.7%2F0_146262_c923bc59_orig.png&hash=4acfa6203b5cf0c7fd8666bdaa038c18)

И судя по этой ссылке сообщение об ошибке появляется с Update 2: https://blogs.msdn.microsoft.com/vcblog/2016/04/14/stl-fixes-in-vs-2015-update-2/
Так что видимо альтернативных решений 3:
1. Не ставить Update 2 и последующие (но они вроде сильно улучшают быстродействие STL)
2. Убрать опцию компилятора /RTCc

(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fimg-fotki.yandex.ru%2Fget%2F170815%2F7842324.7%2F0_146267_285050f0_orig.png&hash=59c080aacfc7559b7787fd30ebc85b34)

3. Объявить где-то переменную _ALLOW_RTCc_IN_STL:

(https://adn-cis.org/forum/proxy.php?request=http%3A%2F%2Fimg-fotki.yandex.ru%2Fget%2F197700%2F7842324.7%2F0_146266_afde3bc6_orig.png&hash=c1bc7ad390c877d9d1ce5c9b62e0339f)

P.S.: Похоже в данном случае Express не виновата, но Community в любом случае лучше.

 
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: YK@7000 от 29-11-2016, 23:02:16
Добрый вечер, Александр!!!
Два последних варианта работают отлично(насчет апдейтов сказать ничего не могу)

Кстати, насчет того, что надо бы объявить директиву _ALLOW_RTCc_IN_STL мысль мелькала (но видимо не задержалась  :D)

Еще раз огромное спасибо
С уважением
YK@7000
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 29-11-2016, 23:04:08
Два последних варианта работают отлично(насчет апдейтов сказать ничего не могу)
Еще раз огромное спасибо
А кто будет отмечать Решение? ;)
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: YK@7000 от 30-11-2016, 00:10:46
А в какой форме?
Видеоконференция? :D
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 30-11-2016, 00:40:14
А в какой форме?
Видеоконференция? :D
Мысль конечно интересная. :D Но начни с чтения моей подписи про "Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение"
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: YK@7000 от 30-11-2016, 10:13:23
Ну под видеоконференцией я вообще-то имел ввиду нечто похожее на второй пункт вашей подписи. А Вы о чем подумали?  ;)
Ладно, это так немного юмора.  На этой позитивной ноте заканчиваю - не хочу захламлять форум.  Насчет третьего пункта Вашей подписи конечно же понял
Название: Re: ObjectARX и Visual Studio 2015 Express
Отправлено: Александр Ривилис от 30-11-2016, 10:37:49
Насчет третьего пункта Вашей подписи конечно же понял
Похоже, что нет, так как в результате нажать её пришлось мне...