ObjectARX2018+AutoCAD2018+VS2015开发环境配置

步骤一、开发工具准备

1.Visual Studio 2015 下载含(更新3)及密钥:http://blog.postcha.com/read/66 (下载社区版即可)

Visual Studio 2015安装步骤:https://jingyan.baidu.com/article/c45ad29c223421051753e23a.html

2.ObjectARXWizards.msi 2018 下载地址:https://pan.baidu.com/s/1fKIc4xp6K3M_a7ayvl10Ug

3.Autodesk_ObjectARX_2018_Win_64_and_32_Bit.sfx.exe 2018 SDK 下载地址:https://pan.baidu.com/s/1ktGYjzC5CILxp6Ppc9qxRA

4.AutoCAD 2018下载地址:https://pan.baidu.com/s/1MxPgMHCOQ192u3VS_2Hp5w

步骤二、手动创建ObjectARX程序

这一步不是必要的,也可以直接跳到步骤三,但是步骤三需要添加步骤二的链接库和引用等。

1.创建win32项目ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第1张图片

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第2张图片 

2.配置属性

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第3张图片

3.VC++目录

1)include目录

 ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第4张图片

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第5张图片 

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第6张图片

2)lib库目录

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第7张图片

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第8张图片 

3)C/C++->代码生成

代码生成设置,链接库:多线程DLL(/MD) ,如果没有这个选项,看vs2008中项目属性中没有C/C++选项,也可以先不理会这一项,C/C++-这个选项在后面创建并运行cpp项目才会出现。

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第9张图片

4)附加依赖项

rxapi.lib;acdb22.lib;acge22.lib;acad.lib;ac1st22.lib;accore.lib

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第10张图片 

编译程序:

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第11张图片  

4.添加cpp文件

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第12张图片

Hello.cpp添加代码:

#include 
#include 
#include "stdafx.h"

void InitApp();
void UnloadApp();

void HelloWorld();

void InitApp()
{
	acedRegCmds->addCommand(L"Hello1", L"Hello", L"Hello", ACRX_CMD_MODAL, HelloWorld);
}

void UnloadApp()
{
	acedRegCmds->removeGroup(L"Hello1");
}

void HelloWorld()
{
	acutPrintf(L"\nHello World!");
}

extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt) {
	switch (msg)
	{
	case AcRx::kNullMsg:
		break;
	case AcRx::kInitAppMsg:
		acrxDynamicLinker->unlockApplication(pkt);
		acrxRegisterAppMDIAware(pkt);
		InitApp();
		break;
	case AcRx::kUnloadAppMsg:
		UnloadApp();
		break;
	case AcRx::kLoadDwgMsg:
		break;
	case AcRx::kUnloadDwgMsg:
		break;
	case AcRx::kInvkSubrMsg:
		break;

	case AcRx::kCfgMsg:
		break;
	case AcRx::kEndMsg:
		break;
	case AcRx::kQuitMsg:
		break;
	case AcRx::kSaveMsg:
		break;
	case AcRx::kDependencyMsg:
		break;

	case AcRx::kNoDependencyMsg:
		break;

	case AcRx::kOleUnloadAppMsg:
		break;
	case AcRx::kPreQuitMsg:
		break;
	case AcRx::kInitDialogMsg:
		break;
	case AcRx::kEndDialogMsg:
		break;
	case AcRx::kSuspendMsg:
		break;

	case AcRx::kInitTabGroupMsg:
		break;
	case AcRx::kEndTabGroupMsg:
		break;
		
	default:
		break;
	}
return AcRx::kRetOK;
}

 此时,编译cpp项目!

然后,

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第13张图片

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第14张图片 

链接中的附加库:

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第15张图片 

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第16张图片 

添加模块定义文件:

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第17张图片 

Hello.def添加代码:

LIBRARY Hello1
DESCRIPTION "First ARX Application"

EXPORTS
acrxEntryPoint PRIVATE
acrxGetApiVersion PRIVATE

添加stdafx.cpp和stdafx.h文件:

 stdafx.h添加代码:

#pragma once

#define WIN32_LEAN_AND_MEAN

#include 
#include "tchar.h"

 stdafx.cpp添加代码:

#include "stdafx.h"

添加入口函数:

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第18张图片

Hello1添加代码:

#include "stdafx.h"
BOOL APIENTRY DLLMain(HANDLE hModule,
	DWORD ul_reason_for_call,
	LPVOID lpReserved)
{
	return TRUE;
}

 编译程序,通过!

三、手动创建ARX HelloWorld程序

1.AutoCAD ObjectARX 2018本身有bug,需要对两个文件进行修改

可参考文章:VC++开发AutoCAD 2018/objectARX 用向导新建项目无法新建的问题

1)将文档中有2017的地方替换成2018

使用搜索软件"火萤酱"找到文件:

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第19张图片

2) 第一个文件

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第20张图片

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第21张图片 

3.)第二个文件

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第22张图片 

2.创建ARX项目:

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第23张图片 

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第24张图片 

其他选项默认即可。 

编译,出现错误:

解决error:

 ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第25张图片

解决warning:

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第26张图片 

编译:

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第27张图片 

ObjectARX2018+AutoCAD2018+VS2015开发环境配置_第28张图片 

输入命令:MYCOMMANDLOCAL

 

<完>

你可能感兴趣的:(ObjectARX二次开发)