构建 ObjectARX 应用程序的第一步是在 Microsoft Visual Studio 中设置一个项目。本节列出了构建基本 ObjectARX 应用程序所需的项目设置和最少文件数。 或者,您可以使用 ObjectARX Wizards for AutoCAD 创建一个新的 ObjectARX 项目,您可以从 ObjectARXutils\ObjARXWiz目录中安装该项目。
注意:ObjectARX 向导已从 ObjectARX SDK 中删除。您可以在 AutoCAD 开发人员中心找到最新版本。
对项目使用以下设置
您需要将源文件添加到新项目中。如果已有源文件或正在使用示例程序源文件,请添加这些文件。 此示例显示了制作 ObjectARX 程序所需的最少代码。 将新的C++源文件添加到项目中,然后输入以下代码:#include "rxregsvc.h" #include "acutads.h" // Simple acrxEntryPoint code. Normally intialization and cleanup // (such as registering and removing commands) should be done here. // extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* appId) { switch(msg) { case AcRx::kInitAppMsg: // Allow application to be unloaded // Without this statement, AutoCAD will // not allow the application to be unloaded // except on AutoCAD exit. // acrxUnlockApplication(appId); // Register application as MDI aware. // Without this statement, AutoCAD will // switch to SDI mode when loading the // application. // acrxRegisterAppMDIAware(appId); acutPrintf("\nExample Application Loaded"); break; case AcRx::kUnloadAppMsg: acutPrintf("\nExample Application Unloaded"); break; } return AcRx::kRetOK; } 项目还需要一个定义文件。向项目添加新的文本文件,并使用 .def扩展名命名。 在 DEF 文件中输入以下代码 LIBRARY "objectarx_program_name.arx" EXPORTS acrxEntryPoint PRIVATE acrxGetApiVersion PRIVATE EXPORTS 部分应该存在,并且必须至少包含函数(除非您使用其他机制导出此函数,如 Windows约定)。acrxEntryPoint_declspec(dllexport) 在 DEF 文件中使用 PRIVATE 可防止这些符号出现在此 ObjectARX 应用程序的导入库中。该符号仍将显示在应用程序的导出表中,允许 AutoCAD 查找并调用该符号。这一点很重要,因为每个 ObjectARX 应用程序或对象启用程序都必须有自己的这些功能实现。应用程序通过链接到静态库rxapi.lib 来获取实现。如果 ObjectARX 应用程序 app2 通过链接到app1.lib 来使用 ObjectARX 应用程序 app1 中的符号,则 app2 从 app1 导入库中获取其定义将是一个错误。在 DEF 文件中使用 PRIVATE 将防止这种情况。在链接到另一个 ObjectARX 应用程序的任何导入库之前,确保链接到rxapi.lib也可以防止这种情况。acrxGetApiVersionacrxGetApiVersion 库名称应与要创建的 ObjectARX 文件的文件名匹配,并且必须显示 .arx扩展名。例如,如果所需的输出文件名是test.arx,则 DEF 文件中的 LIBRARY 语句应显示全名test.arx。 注意:如果您愿意,可以在项目中包含标准的 ObjectARX DEF 文件 AcRxDefault.def。此文件正确定义了所需的 ObjectARX 导出,可在 \incSDK 目录中找到。它不使用 LIBRARY 语句。
添加这两个源文件后,可以构建基本的 ObjectARX 应用程序。 要测试应用程序,请启动 AutoCAD 并使用以下方法之一加载程序
有关更多信息,请参阅加载 ObjectARX 应用程序。 |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:23
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.