Hello World!

来源:互联网 发布:周杰伦的才华 知乎 编辑:程序博客网 时间:2024/06/15 03:38

//最简单的ARX程序

/*Ojectarx 实际是动态链接库,专用于autocad的动态链接库,因而需进行以下设置:
设置编译器参数:指定objectarx头文件路径,及代码生成方式
设置链接器参数:包括输出文件名、添加objectarx库文件指定库文件路径。
acedapi.lib rxapi.lib acrx15.lib acutil15.lib*/

#include<aced.h>               //arx应用程序定义和访问autocad指定服务所需的头文件
#include<rxregsvc.h>           //使用arxXXX工具函数所需的头文件

void initapp();
void unloadapp();
void me();

void initapp()
{
acedRegCmds->addCommand("lp",  "lll",  "ppp",  ACRX_CMD_MODAL,  me);  
}

void unloadapp()
{
 acedRegCmds->removeGroup("lp"); 
}

void me()
{
 acutPrintf("/nhello,world!");   //acutprintf 类似于c语言中的printf函数
}

extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg,void*pkt)
{
     switch(msg)
  {
      case AcRx::kInitAppMsg:
     acrxDynamicLinker->unlockApplication(pkt);
     acrxRegisterAppMDIAware(pkt);
 initapp();
 break;
 case AcRx::kUnloadAppMsg:
 unloadapp();
 break;
 }
return AcRx::kRetOK;
}

/*
Library lp
Description "first arx application"
EXPORTS
acrxEntryPoint  PRIVATE
acrxGetApiVersion PRIVATE
模块定义文件是windows动态链接库创建输出函数的一种方式,通过模块定义文件,
autocad能知道应用程序输出了那些函数,以便执行入口点函数。必须包含以下部分
第一句必须是library语句,后面跟项目名称.Exports列出了动态链接库输出的函数,
对于arx应用程序,至少要输出acrxentrypoint和acrxgetapiversion两个函数虽然
并非必不可少,但一般最好用description语句来说明动态链接库的作用*/

 

 

 

 

原创粉丝点击