马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 1121443108qaz 于 2019-1-9 15:18 编辑
想起来一开始总不得入门,有的电脑又装不了msi。就写下这篇帖子,希望能给人一些启发。
1、建立一个空项目
2、首先配置所有的x64位置,更改项目属性-常规下的相应内容。目标文件扩展名为.arx,项目类型为dll,mfc的使用为在共享dll中,使用unicode字符集,无全程序优化。
3、项目设置-调试-命令栏输入cad2019的位置,如D:\Program Files\Autodesk\AutoCAD 2019\acad.exe
4、项目设置-VC++目录添加objectarx的包含目录和库目录。包含目录添加这两项C:\objectarx\inc-x64;C:\objectarx\inc;库目录添加C:\objectarx\lib-x64
5、项目属性-链接器-输入-附加依赖项添加这几个库文件,rxapi.lib;acdb23.lib;accore.lib;acge23.lib;ac1st23.lib
6、新建一个stdafx.h头文件,stdafx.cpp文件;
7、stdafx.h文件内容为如下
 - #pragma once
- #include <afxwin.h>
- #include <afxext.h>
- #include <afxcmn.h>
- #include "arxHeaders.h"
8、stdafx.cpp文件内容如下
 - #include "stdafx.h"
9、此时再项目-属性进去多出了C/C++栏,设计该栏预处理器定义为_AFXEXT;%(PreprocessorDefinitions),代码生成-运行库为MD,预编译头为使用。
10、单独设置stdafx.cpp的c/c++栏预编译头为创建。
11、新建一个任意名字的文件作为入口文件,如entry.cpp,新建一个派生自AcRxArxApp的类,再使用IMPLEMENT_ARX_ENTRYPOINT()设置为入口点.
12、entry.cpp内容如下,该文件创建两个命令组object和Mygroup,每个命令组下有一个命令,一个是test ,一个是hello,均输出helloWorld。
 - #include "stdafx.h"
- /*
- MyApp名字可任意,必须要有构造函数、On_kInitAppMsg、On_kUnloadAppMsg、RegisterServerComponentsp 这四个函数
- */
- class MyAPP : public AcRxArxApp
- {
- public:
- MyAPP() : AcRxArxApp() {}
- virtual AcRx::AppRetCode On_kInitAppMsg(void *pkt)
- {
- AcRx::AppRetCode rt = AcRxArxApp::On_kInitAppMsg(pkt);
- return rt;
- }
- virtual AcRx::AppRetCode On_kUnloadAppMsg(void *pkt)
- {
- AcRx::AppRetCode rt = AcRxArxApp::On_kUnloadAppMsg(pkt);
- return rt;
- }
- virtual void RegisterServerComponents(){}
- static void MyGroupTest() //每一个这种函数对应下最下方一个宏,可自动生成命令
- {
- acutPrintf(L"\nhelloWorld");
- }
- static void objectHello()
- {
- acutPrintf(L"\nhello world");
- }
- };
- IMPLEMENT_ARX_ENTRYPOINT(MyAPP)
- ACED_ARXCOMMAND_ENTRY_AUTO(MyAPP, MyGroup, Test, Test, ACRX_CMD_MODAL, NULL)
- ACED_ARXCOMMAND_ENTRY_AUTO(MyAPP, object, Hello, Hello, ACRX_CMD_MODAL, NULL)
13、win32配置上只有库目录和包含目录有所不同,其它一样。
|