Ошибки при компиляции в VS 2015 с ObjectARX SDK 2017

Автор Тема: Ошибки при компиляции в VS 2015 с ObjectARX SDK 2017  (Прочитано 15993 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Отмечено как Решение Виталий 11-06-2016, 10:47:38

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Тебе совершенно четко говорится, что ошибка из-за:
Цитировать
1>  cls_base.cpp(1727): note: while trying to match the argument list '(VBaseFile, int)'
В коде ты из файла читаешь:
Код - C++ [Выбрать]
  1.       file >> normal >> (int)isClose >> n;         //error on the second >> for vs2015
1) normal - судя по всему это AcGeVector3d и для него есть VBaseFile& operator>>(AcGeVector3d& v)
2) (int)isClose - а вот тут у тебя нет оператора VBaseFile& operator>>(int n), а есть только VBaseFile& operator>>(int &n), который не согласуется.
Кстати, а какого типа у тебя isClose - в коде это не видно, т.к. ты показываешь   обрывки кода.
Попробуй заменить на:
Код - C++ [Выбрать]
  1. int n;
  2. int n_isClose;
  3. file >> normal >> n_isClose >> n;
  4. isClose = n_isClose;

Кстати, если твой код использовался в предыдущих версиях AutoCAD, то значение isClose должно было быть неопределённым.

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Непонятно почему в самом классе VS не находит ошибки?
А в классе нет ошибки - ошибка в использовании класса.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВиталийАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Кстати, если твой код использовался в предыдущих версиях AutoCAD, то значение isClose должно было быть неопределённым.
1
Спасибо! Ошибка ушла. Тип Adesk::Boolean isClose; Для компилятора ошибок нет, но повлияет данная корректировка на что нибудь другое если isClose в других местах еще используется?
2
У меня что-то в vs2015 часто изображения иконок пропадают, т.е. меню все чисто серое? Стало надоедать угадывать команды. 

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Тип Adesk::Boolean isClose;
До ObjectARX 2017 это был BOOL (или int), теперь bool.
Для компилятора ошибок нет, но повлияет данная корректировка на что нибудь другое если isClose в других местах еще используется?
Может повлиять если в файл писали в предыдущей версии AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВиталийАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Изменения для vs2017 в связи с несоответствием типов не повлияют на компиляцию в vs2010 и vs2012 ? Их просто много, нужно ли в листингах проверку делать на каждый VS? 

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Изменения для vs2017 в связи с несоответствием типов не повлияют на компиляцию в vs2010 и vs2012 ? Их просто много, нужно ли в листингах проверку делать на каждый VS? 
Проверяй. Что будет конкретно в твоем коде я заранее угадать не могу.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВиталийАвтор темы

  • ADN OPEN
  • ***
  • Сообщений: 125
  • Карма: -1
Проверяй. Что будет конкретно в твоем коде я заранее угадать не могу.
Ну а в принципе чисто замена int и long на Adesk::Int32 ?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Повторюсь. Проверяй. Практика - критерий истины.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение