构建 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-10-29 07:08
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.