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



         

Использование MFC и ClassWizard, чтобы Обратиться К AutoCAD ActiveX Автоматизация


Этот метод использует MFC, и Visual C++ ClassWizard, чтобы читать AutoCAD напечатает библиотеку (acad.tlb).

Вызов ActiveX Автоматизацию связывает с помощью интерфейса использование MFC и систему Импорта Библиотеки Типа ClassWizard

1 типовая программа будет использовать COM ActiveX интерфейсы Автоматизации AutoCAD, чтобы создать круг в пространстве модели. В Visual C++ создают новый MFC AppWizard (dll) проект по имени AsdkComMfcDocSamp.

2 Выбирают Регулярный DLL использование общедоступного MFC DLL.

ПРИМЕЧАНИЕ Вы можете фактически выбирать любую из опций, но различных назначений и кода, будет требовано в зависимости от вашего выбора. Этот пример будет использовать Регулярный DLL использование общедоступного MFC DLL. См. главу 8, “MFC Темы”, для подробной информации относительно опций, чтобы выбрать для различных задач.

3 Выберите Finish и затем Ok для создания проекта.

4 Добавляют соответствующие значения к проектным назначениям, чтобы делать проектную компоновку как программа ObjectARX. Эта программа должна связаться со следующими библиотеками:

Acad.lib

Rxapi.lib

Acedapi.lib

5 Добавляют соответствующие строки к файлу DEF в секцию EXPORTS:

AcrxEntryPoint

_SetacrxPtp

AcrxGetApiVersion

6 Открывают AsdkComMfcDocSamp.cpp исходный файл и добавляют следующий код, чтобы делать программу ObjectARX совместимой. Обратите внимание, что  макрокоманда вызывает acrxEntryPoint () функция для AFX_MANAGE_STATE(AfxGetStaticModuleState()):

static void initApp()

{

acedRegCmds->addCommand(

"ASDK_MFC_COM",

"AsdkMfcComCircle",

"MfcComCircle",

ACRX_CMD_MODAL,

addCircleThroughMfcCom);

}

static void unloadApp()

{

acedRegCmds->removeGroup("ASDK_MFC_COM");

}

extern "C" AcRx::AppRetCode acrxEntryPoint

(AcRx::AppMsgCode msg, void* appId)

{

AFX_MANAGE_STATE(AfxGetStaticModuleState());

switch(msg)

{

case AcRx::kInitAppMsg:

acrxDynamicLinker->unlockApplication(appId);




Содержание  Назад  Вперед