![image](https://habrastorage.org/files/ee9/80e/440/ee980e4405bd4f458d575cf173b8d4d1.png)
В одной из предыдущих статей мы писали о создании кросс-САПР-платформенных приложений из существующих приложений, работающих только на платформе AutoCAD. В данной статье мы углубимся в детали и расскажем о том, как настроить проект ObjectARX приложения для AutoCAD и собрать NRX приложение для nanoCAD.
Напомним, что для преобразования ObjectARX приложения в NRX приложение необходимо скопировать существующую конфигурацию проекта и заменить в ней пути к заголовкам, библиотекам, а также задать константы для условной компиляции. Процесс этот описан в документации nanoCAD SDK.
Ниже мы расскажем о том, чего в документации разработчика ещё нет — об использовании страниц свойств (property pages), позволяющих минимизировать количество изменений, необходимых для создания в проекте конфигурации для nanoCAD. В результате настройки, приложение можно будет собрать под обе платформы, nanoCAD и AutoCAD, при этом изменения будут вноситься лишь в файлы проектов, исходные тексты, .h и .cpp файлы, останутся неизменными.
Начнём с задания переменной среды, указывающей на расположение nanoCAD SDK. Переменная может быть определена в системе, либо может быть задана в .bat файле перед запуском Visual Studio 2008.
Почему Visual Studio 2008, а не 2010/2012/2013/2015?
nanoCAD 3.0 — 7.0 собраны на Visual Studio 2008, поэтому и приложения следует собирать этим же компилятором.
StartVS90_NCadSDK.bat:
set NCadSDK=c:\Program Files (x86)\Nanosoft\nanoCAD Plus 7.0\SDK
call "%VS90COMNTOOLS%vsvars32.bat"
devenv.exe
После запуска Visual Studio, создадим новую конфигурацию проекта. Конфигурацию можно создать с нуля, либо скопировать одну из существующих конфигураций. Например, конфигурация Release может быть скопирована в новую конфигурацию Release NCAD.
![image](https://habrastorage.org/files/3b4/2cd/0f6/3b42cd0f68db4a87bcb415dc9ef493b4.png)
Для того, чтобы не настраивать вручную параметры компилятора и компоновщика, подключим страницу свойств, .vsprops файл, в котором эти параметры уже настроены. Страницы свойств добавляются в окне менеджера свойств (View -> Property manager).
![image](https://habrastorage.org/files/52b/a0f/c21/52ba0fc21d0f4ee09eef4e6acb9370bc.png)
В состав NRX SDK входят страницы свойств для отладочной и релизной конфигураций:
- rxsdk_debugcfg.vsprops – свойства для debug-конфигурации проекта;
- rxsdk_releasecfg.vsprops – свойства для релизной конфигурации проекта;
Расположены они в директории <NCadSDK_path>\include\arxgate. Для обеспечения максимальной совместимости файлы страниц свойств, а также заголовки, расположенные в директории arxgate, имеют такие же имена, что и аналогичные файлы в ObjectARX.
После добавления страницы свойств, пронаследованные настройки появляются в проекте:
![image](https://habrastorage.org/files/d88/ffe/e06/d88ffee0628f46468cbb4844c5d9fa37.png)
![image](https://habrastorage.org/files/087/c21/adc/087c21adcf5d46a09663135a99d9f8c4.png)
Вот, собственно, и все, что необходимо сделать для портирования простого приложения. Собранный NRX-модуль загружается в nanoCAD командой APPLOAD. Для автоматической загрузки, приложения можно добавить в «Чемодан автозагрузки», расположенный там же, в диалоге команды APPLOAD.
![image](https://habrastorage.org/files/a18/83e/0bc/a1883e0bc2cb4a4293509e49c05b83b5.png)
Обсудить статью можно также и на нашем форуме.
Перевод статьи на английский: Porting C++ applications to nanoCAD: using project property pages