Подключение сборок ms visual studio c++

Автор Тема: Подключение сборок ms visual studio c++  (Прочитано 11973 раз)

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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Подскажите или дайте ссылку с описанием как подключить сборки .net autocad api в среде проекта с++

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Подключение сборок ms visual studio c++
« Ответ #1 : 19-07-2016, 13:20:38 »
в среде проекта с++
В среде какого проекта C++? Если native C++, то никак. А в managed C++ при помощи директивы #using:
Код - C++ [Выбрать]
  1. #using <acdbmgd.dll>
  2. #using <acmgd.dll>

Цитировать
Компилятор будет искать ссылки по следующим путям:

    Путь, заданный в директиве #using.

    Текущий каталог.

    Системный каталог .NET Framework.

    Каталоги, добавленные при помощи параметра компилятора /AI.

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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Подключение сборок ms visual studio c++
« Ответ #2 : 20-07-2016, 01:16:35 »
managed C++
А проект managed C++ с чего начать?
 К примеру для теста
1) Я создал проект консольного приложения
2) Переменной среды LIBPATH - задал путь где лежать acdbmgd.dll ... и другие
3) \Свойства проекта\Свойствах конфигурации\Общее\
     Поддержка общеязыковой среды выполнения = "Поддержка CLR-среды (/clr)" CLI в моей студии нет
И пишет ошибка С 1107 Не удается найти указанный файл сборки

У меня:
Visual Studio 2012 Professional
Может что-то в настройках еще нужно указать?
Сборки подключаю от 2012 AutoCAD 64x
Мне обязательно подключить сборки Net FrameWork 4.5?


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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Подключение сборок ms visual studio c++
« Ответ #3 : 20-07-2016, 01:24:08 »
1) Я создал проект консольного приложения
Сразу мимо. Создавать нужно проект при помощи ObjectARX Wizard (для соответствующей версии) и указать в нём поддержку .NET:



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

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Подключение сборок ms visual studio c++
« Ответ #4 : 20-07-2016, 01:33:04 »
#using <acdbmgd.dll>#using <acmgd.dll>
Через #using <...> так и не получилось. Просто подключил сборки.
и использую пространства имен.
Код - C++ [Выбрать]
  1. using namespace Autodesk::AutoCAD::DatabaseServices;
только вот С++ не разрешает задать сое имя пространству имен
к примеру я хочу задать имя CAD_DBS как это делал раньше на VB

А и еще какой тег использовать для оформления кода С++?
« Последнее редактирование: 20-07-2016, 02:04:11 от Алексей (IdeaSoft) »

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Подключение сборок ms visual studio c++
« Ответ #5 : 20-07-2016, 01:38:28 »
и помощи ObjectARX Wizard
А этот Визард где скачать?

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Подключение сборок ms visual studio c++
« Ответ #6 : 20-07-2016, 01:52:19 »
А и еще какой тег использовать для оформления кода С++?
C++ конечно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Подключение сборок ms visual studio c++
« Ответ #7 : 20-07-2016, 01:54:13 »
А этот Визард где скачать?
http://usa.autodesk.com/adsk/servlet/index?id=1911627&siteID=123112
В разделе ObjectARX Wizard для соотвествующей версии AutoCAD и Visual Studio.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Подключение сборок ms visual studio c++
« Ответ #8 : 20-07-2016, 01:56:32 »
и использую пространства имен.
using namespace Autodesk::AutoCAD::DatabaseServices;
только вот С++ не разрешает задать сое имя пространству имен
к примеру я хочу задать имя CAD_DBS как это делал раньше на VB
А так не работает:
Код - C++ [Выбрать]
  1. namespace CAD_DBS = Autodesk::AutoCAD::DatabaseServices;
?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Подключение сборок ms visual studio c++
« Ответ #9 : 20-07-2016, 01:59:27 »
[quote author=Александр Ривилис link=topic=7213.msg21383#msg21383 date=1468968739]C++ конечно.[/quote]
К меня вот и вопрос как тег правильно оформить?
Вот так?
   [code = cpp]

Да точно так я понял.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Подключение сборок ms visual studio c++
« Ответ #10 : 20-07-2016, 02:01:06 »
namespace CAD_DBS = Autodesk::AutoCAD::DatabaseServices
А понял спасибо! Просто слово using убрать нужно.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Подключение сборок ms visual studio c++
« Ответ #11 : 20-07-2016, 02:06:09 »
namespace CAD_DBS = Autodesk::AutoCAD::DatabaseServices;
Так все ok компилятор не ругается

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Re: Подключение сборок ms visual studio c++
« Ответ #12 : 22-07-2016, 22:40:27 »
А вот еще вопрос.
А нужно ли к проекту С++
подключать соотв. файлам
 acdbmgd.dll, accoremgd.dll, acmgd.dll

 acdbmgd.h, accoremgd.h, acmgd.h
 acdbmgd.lib, accoremgd.lib, acmgd.lib


« Последнее редактирование: 22-07-2016, 23:53:55 от Алексей (IdeaSoft) »

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Подключение сборок ms visual studio c++
« Ответ #13 : 23-07-2016, 00:06:42 »
А вот еще вопрос.
А нужно ли к проекту С++
подключать соотв. файлам
 acdbmgd.dll, accoremgd.dll, acmgd.dll

 acdbmgd.h, accoremgd.h, acmgd.h
 acdbmgd.lib, accoremgd.lib, acmgd.lib
Если проект native (т.е. без использования .NET), то acdbmgd.dll, accoremgd.dll, acmgd.dll подключать не только не нужно, но и невозможно, т.к. он их не поймёт.
А вот по поводу .h и .lib, указанных тобой - мне известен только один реально существующий acdbmgd.lib (и никаких h-файлов с такими именами), экспортирующий несколько функций:
Код - INI [Выбрать]
  1. E:\ObjectARX2017\lib-x64>dumpbin.exe /exports acdbmgd.lib
  2. Microsoft (R) COFF/PE Dumper Version 11.00.61030.0
  3. Copyright (C) Microsoft Corporation.  All rights reserved.
  4.  
  5.  
  6. Dump of file acdbmgd.lib
  7.  
  8. File Type: LIBRARY
  9.  
  10.      Exports
  11.  
  12.        ordinal    name
  13.  
  14.                   ?ExtensionLoader_IsLoaded@@YAHPEB_W@Z (int __cdecl ExtensionLoader_IsLoaded(wchar_t const *))
  15.                   ?LoadManagedDll@@YA?AW4ErrorStatus@Acad@@PEB_W@Z (enum Acad::ErrorStatus __cdecl LoadManagedDll(wchar_t const *))
  16.                   ?desc@AcMgObjectFactoryBase@@SAPEAVAcRxClass@@XZ (public: static class AcRxClass * __cdecl AcMgObjectFactoryBase::desc(void))
  17.                   ?isA@AcMgObjectFactoryBase@@UEBAPEAVAcRxClass@@XZ (public: virtual class AcRxClass * __cdecl AcMgObjectFactoryBase::isA(void)const )
  18.                   EstablishCulture
  19.                   Initialize
  20.                   LoadIndirectString
  21.                   Terminate
  22.  
  23.   Summary
  24.  
  25.           C3 .debug$S
  26.           14 .idata$2
  27.           14 .idata$3
  28.            8 .idata$4
  29.            8 .idata$5
  30.            C .idata$6
Из этих всех функций я использовал только одну - LoadManagedDll. Она используется для загрузки из native ObjectARX managed .NET сборок:
http://adn-cis.org/zagruzka-upravlyaemoj-.net-sborki-iz-objectarx-prilozheniya.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение