AutoCAD中的ARX插件一般写法(ObjectARX+C++)
来源:互联网 发布:网络经营许可证申请 编辑:程序博客网 时间:2024/06/08 18:41
AutoCAD中的ARX插件一般写法(ObjectARX+C++)
// MyArxFirst.cpp : 定义 DLL 应用程序的导出函数。//ObjectArx开发对txt文本文件的操作一例#pragma once#include "stdafx.h"//#include "Convert.h"#include "fileSimpleClass.h"#include "dbSimpleClass.h"//定义两个函数void initApp();void unloadApp();//定义命令函数//------------------------------------------void hello();//打印"Hello world!"在AutoCAD Command上 的命令void pfvalue();//打印文件内容 的命令void pdbvalue();//ado连接数据库的方法 的命令void inputvalue(); //CAD交互操作的方法 的命令//------------------------------------------//定义CAD的实体点函数 这个函数是必须的extern "C" AcRx::AppRetCodeacrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)//void acrxEntryPoint(void* pkt){ switch (msg){case AcRx::kInitAppMsg:acrxDynamicLinker->unlockApplication(pkt);acrxRegisterAppMDIAware(pkt);initApp();break;case AcRx::kUnloadAppMsg:unloadApp();break;default: break;}return AcRx::kRetOK;}void initApp(){ //register a command with the AutoCAD command mechanism//string macro 用法://_T("helloworld") or __T("helloworld") or ACRX_T("helloworld")acedRegCmds->addCommand(ACRX_T("HELLOWORLD_COMMANDS"), ACRX_T("ArxHsgBag"),ACRX_T("Hello"),ACRX_CMD_TRANSPARENT,hello);acedRegCmds->addCommand(ACRX_T("PFVALUE_COMMANDS"), ACRX_T("ArxHsgBag"),ACRX_T("pfvalue"),ACRX_CMD_TRANSPARENT,pfvalue);acedRegCmds->addCommand(ACRX_T("PDBVALUE_COMMANDS"), ACRX_T("ArxHsgBag"),ACRX_T("pdbvalue"),ACRX_CMD_TRANSPARENT,pdbvalue);acedRegCmds->addCommand(ACRX_T("INPUTVALUE_COMMANDS"), ACRX_T("ArxHsgBag"),ACRX_T("inputvalue"),ACRX_CMD_TRANSPARENT,inputvalue);//}void unloadApp(){ acedRegCmds->removeGroup(ACRX_T("HELLOWORLD_COMMANDS"));acedRegCmds->removeGroup(ACRX_T("PFVALUE_COMMANDS"));acedRegCmds->removeGroup(ACRX_T("PDBVALUE_COMMANDS"));acedRegCmds->removeGroup(ACRX_T("INPUTVALUE_COMMANDS"));}//定义两个类变量fileSimpleClass fsc;dbSimpleClass dbsc;Convert cvOp;//----------------------------------------------------//实现命令函数void hello()//hello命令{ acutPrintf(ACRX_T("\n第一个Arx程序Hello World!"));}void pfvalue()//打印文件内容 命令{acutPrintf(_T("开始输出文件内信息:\n")); const ACHAR* filepath=ACRX_T("d:\\test.txt"); //OKacutPrintf(filepath);//OKfsc.pfvalue_default(filepath); //OKfsc.pfvalue2(filepath); //OK}void pdbvalue()//输出数据库表内记录的命令{ acutPrintf(_T("开始输出数据库表内记录:\n"));//...acutPrintf(_T("执行函数:pdbvalue_mdb结果\n"));dbsc.pdbvalue_mdb();acutPrintf(_T("执行函数:pdbvalue_mdb结果完毕!\n"));//acutPrintf(_T("执行函数:pdbvalue_mdb2结果\n"));dbsc.pdbvalue_mdb2();acutPrintf(_T("执行函数:pdbvalue_mdb2结果完毕!\n"));dbsc.pdbvalue_write();acutPrintf(_T("执行函数:pdbvalue_write完毕!\n"));}void displayvalue(_bstr_t bstrt){ ACHAR* tmp=cvOp.GetAcharPtr(bstrt); acutPrintf(tmp);}void inputvalue(){ int res;//输入一个整数acedGetInt(_T("输入一个整数:"),&res);//显示displayvalue(_bstr_t(res));acutPrintf(_T("\n"));/*_bstr_t bstrt(res);ACHAR* tmp=cvOp.GetAcharPtr(bstrt); acutPrintf(tmp);*///输入一个字符串ACHAR str;acedGetString(1,_T("输入一个字符:"),&str);//displayvalue(_bstr_t(str));acutPrintf(_T("\n"));}//----------------------------------------------------
void inputvalue()
{
int res;
//输入一个整数
acedGetInt(_T("输入一个整数:"),&res);
//显示
displayvalue(_bstr_t(res));acutPrintf(_T("\n"));
/*_bstr_t bstrt(res);
ACHAR* tmp=cvOp.GetAcharPtr(bstrt);
acutPrintf(tmp);*/
//输入一个字符串
wchar_t* str;
str=new wchar_t[4000];
acedGetString(1,_T("输入一个字符:"),str);
displayvalue(_bstr_t(str));
acutPrintf(_T("\n"));
}
- AutoCAD中的ARX插件一般写法(ObjectARX+C++)
- ObjectARX和.Net混合编程在AutoCAD二次开发中的应用
- 在.NET中进行AutoCAD二次开发(C#+ObjectArx)
- ObjectARX开发Autocad
- AutoCad二次开发:ObjectARX
- 关于KindEditor插件一般写法
- AutoCAD自动加载ARX文件
- AutoCad二次开发:ObjectARX技术谈
- AutoCAD平台下ObjectARX应用
- AutoCAD ObjectARX 开发环境组合
- AutoCAD ObjectARX和RealDWG资料
- AutoCAD中的命令Explode与Arx中的函数explode()的区别
- 如何移植 Arx/ Dbx 模块为 Crx/DBX 模块来支持 AutoCAD 易(值得一看)
- Autocad自动加载程序研究(注册表法加载单个arx)
- AutoCAD启动是自动加载ARX程序
- AutoCAD.net(三)用VS.NET2005开发ObjectARX程序 调试方法
- Free advanced AutoCAD .NET/ObjectARX webcasts
- AutoCAD ObjectARX 二次开发实例(1)--上下文菜单
- Android入门第十五篇之ActivityGroup + GridView 实现Tab分页标签
- 10060与360网络优化
- android TextView 如何实现消息滚动
- extjs json grid sample(设想绑定odata数据源)
- VB.NET委托的使用
- AutoCAD中的ARX插件一般写法(ObjectARX+C++)
- 关于 Android导出apk时碰到的[Unable to execute dex: Multiple dex files define]
- Tornado: 2. 源码分析 (3)
- 严格的概念认识——关系、关系模型
- Android 与 HttpClient 通讯出现乱码问题的解决
- Objective-C: Get random number 获取随机数
- (iphone/ipad开发技术)ASIHTTPRequest 详解
- 数据库设计规范化及性能折衷
- ERROR: Unknown option '--no-crunch'问题。