ObjectARX, AutoCAD. Среда программирования библиотеки C++

       

Создайте ObjectARX MFC Прикладной Скелет


1 Создают новый проект в Microsoft Visual C++, используя Прикладного Мастера. Выберите MFC AppWizard (dll) проектный{*строительный*} тип. Назначите проект имя (для этой выборки, мы будем использовать имя AsdkAcUiSample) и каталог и нажимать OK. На следующем экране, выберите Расширение{*продление*} MFC DLL, затем нажмите Finish. Мы теперь имеем основное MFC Расширение{*продление*} DLL проект.

2 Мы теперь добавим необходимый код, чтобы поддержать ObjectARX. Откройте AsdkAcUiSample.cpp файл. Удалите запрос AFX_EXTENSION_MODULE и также функция DllMain.

3 Добавляют следующее объявление:

 AC_IMPLEMENT_EXTENSION_MODULE(theArxDLL);

4 Добавляют следующий код, чтобы установить команду AutoCAD и acrxEntryPoint:

void dialogCreate()

{

acutPrintf("\nAcUi Dialog Sample");

}

Следующий запрос addCommand использует образец ресурса модуля от

AC_IMPLEMENT_EXTENSION_MODULE макрокоманда:

static void initApp()

{



theArxDLL.AttachInstance();

CAcModuleResourceOverride resOverride;

acedRegCmds->addCommand(

"ASDK_ACUI_SAMPLE",

"ASDKACUISAMPLE",

"ACUISAMPLE",

ACRX_CMD_MODAL,

dialogCreate,

NULL,

-1,

theArxDLL.ModuleResourceInstance());

}

Следующий unloadApp () функция вызвана, когда приложение разгружается.

В это время важно отделить образец ресурса:

static void unloadApp()

{

// Do other cleanup tasks here

acedRegCmds->removeGroup("ASDK_ACUI_SAMPLE");

theArxDLL.DetachInstance();

}

// Entry point

//

extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* appId)

{

switch( msg )

{

case AcRx::kInitAppMsg:

acrxDynamicLinker->unlockApplication(appId);

acrxDynamicLinker->registerAppMDIAware(appId);

initApp();

break;

case AcRx::kUnloadAppMsg:

unloadApp();

break;

case AcRx::kInitDialogMsg:

break;

default:

break;

}

return AcRx::kRetOK;

}

Создайте AsdkAcUiSample.h файл заголовка, и добавьте следующие линии к file:

#include "resource.h" // main symbols

#define PI 3.14159265359

// Forward declaration for the entry point function of

// our application

void testCreate();

Тогда добавьте следующие файлы для включения к AsdkAcUiSample.cpp:

#include "AsdkAcUiSample.h"

#include "AcExtensionModule.h"

Вы будете также должны добавить ObjectARX библиотеки к проектному файлу, заменять .dll расширение к .arx, и изменять .def файл надлежащим экспортом.  Тогда Вы должны быть способны компилировать и загрузить приложение.



Содержание раздела