TX_SDK开发的配置

原文:http://www.netfoucs.com/article/zhouschina/75660.html


首先下载TeighaViewer_vc10dll_3.09.1.msi和TX_SDK_3.09.0.0.zip, 下载地址参见http://blog.csdn.net/zhouschina/article/details/23423655

安装TeighaViewer_vc10dll_3.09.1.msi到系统中。由安装包可以看出,TeighaViewer版本为3.09.1,开发工具为Visual Studio 2010编译器。

解压TeighaViewerSDK开发包TX_SDK_3.09.0.0.zip到指定目录。这里我们主要关心的是lib文件夹和TD文件夹下的include文件夹,在本课后面将会使用。TD文件夹下的源码程序和Platforms文件夹下的示例工程在今后的学习中将接触到。

打开Visual Studio 2010编译器,新建空项目ODA_Demo工程。

下面配置开发环境。

1、首先设置头文件包含和库包含:

 

图 包含TX_SDK头文件

 

附加库文件目录

 

添加必要的依赖项

 

2、添加必要的预定义_WIN32;WIN32;_DEBUG;_TOOLKIT_IN_DLL_;

_TOOLKIT_IN_DLL_该宏是必须的,否则会引起应用程序加载失败。Teigha Viewer加载*.tx时,提示如下错误:

ODA Warning: Loading of "*_3.09_10.tx" was failed (Entry point is missing).

 

图4 设置预处理器

3、设置生成目标文件名

设置目标文件名为ODA_Demo_3.09_10

注意:目标文件名后缀必须是“_3.09_10” ,3.09为Teigha Viewer版本号,10为编译器版本号。后缀不正确会引起加载Apps(*.tx)失败。

设置目标文件扩展名为:.tx

设置配置类型为:动态库(.dll)

设置字符集为:使用Unicode字符集

 

设置生成目标文件名

4、设置启动命令

如图6所示,在配置属性—调试—命令项设置Teigha Viewer路径(以实际安装路径为准),例如:

D:\Program Files (x86)\ODA\Teigha Viewer 3.09.1\TeighaViewer.exe

 

设置启动命令

 

5、新建ODA_DemoModule.h和ODA_DemoModule.cpp文件。

在ODA_DemoModule.h中添加代码如下:

  1. #pragma once#include "RxModule.h"#include "Ed/EdCommandStack.h"#include "StaticRxObject.h"#include "DbCommandContext.h" // 自定义命令类class textCmd : public OdEdCommand{public:const OdString groupName() const { return OD_T("Demo"); }const OdString globalName() const { return OD_T("InsertText"); }void execute(OdEdCommandContext* pCmdCtx);}; // 自定义模块类class ODA_DemoModule : public OdRxModule{protected:ODA_DemoModule(); void initApp(); void uninitApp(); public:~ODA_DemoModule(); // 命令OdStaticRxObject<textCmd> _textCmd;}; typedef OdSmartPtr<ODA_DemoModule> ODA_DemoModulePtr;  


在ODA_DemoModule.cpp中添加代码如下:

  1. #include "OdaCommon.h"#include "ODA_DemoModule.h"#include "RxDynamicModule.h" #if defined(_TOOLKIT_IN_DLL_) && defined(_MSC_VER) //  MacOS X dynamic library loading. //#ifdef _TOOLKIT_IN_DLL_#define VC_EXTRALEAN#include "windows.h"// 动态库入口函数extern "C" int APIENTRY DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID ){switch ( dwReason ){case DLL_PROCESS_ATTACH:// remove this if you need per-thread initializationDisableThreadLibraryCalls( (HMODULE)hInstance );break;}return TRUE;}#endif  //_TOOLKIT_IN_DLL_ //  MacOS X dynamic library loading. // 定义用户模块类ODRX_DEFINE_DYNAMIC_MODULE(ODA_DemoModule);  ODA_DemoModule::ODA_DemoModule(){} ODA_DemoModule::~ODA_DemoModule(){} void ODA_DemoModule::initApp(){// 加载动态库初始化操作odedRegCmds()->addCommand( &_textCmd ); //注册命令} void ODA_DemoModule::uninitApp(){// 卸载动态库时反初始化操作odedRegCmds()->removeGroup( _textCmd.groupName() );} // 命令执行程序#include "DbText.h"#include "DbBlockTableRecord.h"void textCmd::execute(OdEdCommandContext* pCmdCtx){ OdDbCommandContextPtr pDbCmdCtx(pCmdCtx); OdDbUserIO* pIO = pDbCmdCtx-&gt;dbUserIO(); OdGePoint3d point3d = pIO->getPoint(OD_T("请选择文字插入点位"));  OdDbTextPtr pText = OdDbText::createObject(); pText->setPosition(point3d); pText->setTextString(OD_T("Hello ODA!"));  OdDbDatabase* pDatabase = pDbCmdCtx->database(); OdDbBlockTableRecordPtr pMs = pDatabase->getModelSpaceId().safeOpenObject(OdDb::kForWrite); pMs->appendOdDbEntity(pText);}  


6、编译加载ODA_Demo_3.09_10.tx 程序

编译并成功生成ODA_Demo_3.09_10.tx,按F5启动调试。进入Tetgha Viewer界面,并打开一幅dwg文件,如下:

 

7 Teigha Viewer界面

加载ODA_Demo_3.09_10.tx程序。有两种加载方式:

1、 命令行输入:appload

2、 菜单:Tools—Load Application..., 如图8

 

 

菜单加载app方法

 

图 加载app界面

加载完成后,后在Registered Commands...菜单中添加了Demo子项菜单。

 

10 ODA_Demo_3.09_10.tx中命令加载到菜单中

运行命令,或者命令行输出inserttext命令。

屏幕选择插入文本位置。得到效果如图11

 

11 输出的Hello ODA字符串


DEMO下载地址:http://download.csdn.net/detail/zhouschina/7175749

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值