Настройка проекта

Автор Тема: Настройка проекта  (Прочитано 8665 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

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

  • ADN Club
  • **
  • Сообщений: 81
  • Карма: 0
Настройка проекта
« : 19-07-2016, 12:15:56 »
Добрый день.

Помогите разобраться с настройками проекта.
Создал с помощью мастера ObjectARX свой dbx проект.
Хочу использовать такой код:

Код - C++ [Выбрать]
  1. AcColorSettings colorSetings;
  2. acedGetCurrentColors(&colorSetings);

Выдает ошибки: AcColorSettings: необъявленный идентификатор и т.д.

Какие ссылки мне нужно добавить и как настроить проект чтобы этого не происходило?
Пробовал создавать с помощью мастера ObjectARX как DBX так и ARX проекты, та же ошибка.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Настройка проекта
« Ответ #1 : 19-07-2016, 13:11:48 »
Версия AutoCAD и ObjectARX SDK?
Описание AcColorSettings находится в core_rxmfcapi.h
Так что нужно вставить:
Код - C++ [Выбрать]
  1. #include <core_rxmfcapi.h>
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • **
  • Сообщений: 81
  • Карма: 0
Re: Настройка проекта
« Ответ #2 : 19-07-2016, 13:32:34 »
Пробовал в разных версиях AutoCAD и SDK, от 2010 до 2017 (Visual Studio соответствующие)
При попытке вставить
Код - C++ [Выбрать]
  1. #include <core_rxmfcapi.h>
идет много ошибок типа
синтаксическая ошибка: идентификатор "CString" d:\cads\objectarx 2010\inc\acstatusbar.h
отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию d:\cads\objectarx 2010\inc\acstatusbar.h
синтаксическая ошибка: отсутствие ";" перед "*" d:\cads\objectarx 2010\inc\rxmfcapi.h
и т.д.
Рассматривал пример ...\ObjectARX_2008_32Bit\samples\entity\Smiley
там не увидел нигде прямого включения #include <rxmfcapi.h>, но все работает.
Проблема только в том что тяжело разобраться в настройках проектов ObjectARX SDK.
Вроде сделал такие же настройки как там, но у меня не работает.
Чувствую решение где то совсем рядом, но понять не могу.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Настройка проекта
« Ответ #3 : 19-07-2016, 13:33:04 »
Но вообще этот метод не предназначен для использования в DBX, так как получает цвета из AutoCAD. Ну и чтобы автоматом подключались эти библиотека в ARX необходимо задавать Extension DLL using MFC Shared DLL и AutoCAD MFC Extension Support:



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

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

  • ADN Club
  • **
  • Сообщений: 81
  • Карма: 0
Re: Настройка проекта
« Ответ #4 : 19-07-2016, 14:12:35 »
Действительно, при создании нового проекта MFC библиотека подключается и код работает.
Конечно не хотелось бы ради использования одной функции создавать проект MFC с кучей ненужных мне библиотек.
Тем более что не рекомендуется в DBX-приложениях использовать MFC.
А эта функция мне нужна для определения цвета экрана чтобы создать свою маскировку, как было показано здесь:
http://www.caduser.ru/forum/index.php?PAGE_NAME=message&FID=24&TID=48190
Но, видимо, придется пересоздавать проект заново, с использованием MFC.

Отмечено как Решение Gennadiy 20-07-2016, 09:27:11

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Настройка проекта
« Ответ #5 : 20-07-2016, 02:49:27 »
А acedGetRgb(0) не пробовал? Для него MFC не нужен.

Код - C++ [Выбрать]
  1. Adesk::UInt32 bkcolor = acedGetRGB(0);
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • ADN Club
  • **
  • Сообщений: 81
  • Карма: 0
Re: Настройка проекта
« Ответ #6 : 20-07-2016, 09:22:24 »
Да, так работает без MFC, то что нужно!
Спасибо, Александр!

Оффлайн Алексей (IdeaSoft)

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Настройка проекта
« Ответ #7 : 22-07-2016, 23:51:25 »
Для него MFC не нужен.
А для чего вообще этот MFC нужен?
Я тут в книжке по Qt 4.8 в подлиннике (стр. 37) почитал там пишут, что  MFC с большой натяжкой можно назвать объектно-ориентированной.
Пишут, что в MFC не соблюдается одна из заповедей ОПП ИНКАПСУЛЯЦИЯ. 
Не могу сказать может ли MFC это сильно навредить.
Все на совести разработчиков.

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Настройка проекта
« Ответ #8 : 22-07-2016, 23:54:37 »
А для чего вообще этот MFC нужен?
В основном для написания диалогов, всякий оконный интерфейс и т.д. На данный момент по моим прикидкам не менее 60...70% окон и диалогов в AutoCAD сделано с использованием MFC.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение