Civil 3D CustomDraw .NET混合项目设置
发布日期:2021-08-21 13:17:51 浏览次数:25 分类:技术文章

本文共 1416 字,大约阅读时间需要 4 分钟。

样例文件中的CustomDraw项目使用的是COM API,
但COM API不完整,
某些时候需要使用.NET API,
此时需要将C++项目设置成"公共语言运行时支持(/clr)"
但简单的设置并不能实现项目的顺利编译,
因此我试着使用ObjectARX Wizard向导创建.NET COM混合项目,
之后把C3DCustomDarw样例中的代码移植到新建项目中。

创建ObjectARX项目:

我自己汉化过的截面:

选择ObjectARX(AutoCAD扩展)

可能要用到MFC,所以选择共享MFC扩展DLL

我自己修改过的界面,

如果使用原生的向导,
这里可以选择"导入AutoCAD COM接口",
之后在StdAfx.h文件中添加需要引用的Civil 3D相关的.tlb文件。

例如:

选择.NET混合托管代码支持,
下面的AutoCAD Civil 3D也是我自己的向导中,
后续可以手工添加引用的Dll文件。

项目向导完成后,
首先编译一下,
看是否能成功编译,
因为导入tlb文件的原因,
第一次生成旺旺不能成功,
需要编译第二次。

我刚还原的系统,
VS安装有问题,
就遇到了缺少windows sdk 8.1之类的问题。
确保项目能顺利编译后再进行下一步的设置,
以免众多问题交织到一起,
导致问题难以解决。

增加引用路径:

样例文件夹中的Inc文件夹:

C:\Program Files\Autodesk\Autodesk AutoCAD Civil 3D 2014\Sample\Civil 3D API\COM\VC++\CustomDraw\Inc

添加库目录

C:\Program Files\Autodesk\Autodesk AutoCAD Civil 3D 2014\Sample\Civil 3D API\COM\VC++\CustomDraw\Lib
这个目录2014版中是缺失的,需要自行下载,
下载地址:
http://adndevblog.typepad.com/infrastructure/2013/08/autocad-civil-3d-2014-and-custom-draw-api.html
2016版之后是正常的,
不需单独下载。

添加附件依赖项

从样例文件的acrxEntryPoint.h文件中复制内容到项目的acrxEntryPoint.h。

上面截图中的代码有问题,过会儿再修改!

为了代码更清晰,
新建一个类,

在头文件中添加方法如下:

注意这里我使用了static字段。
方法如何实现,
过会儿再看!

 

添加另一个类,
注意这个类是托管类,
这个类中将使用.NET API操作Civil 3D对象。

添加简单的代码,
用.NET方法输出对象(这里的对象指的是路线)的句柄。

回过头完善C3DCustomDraw.cpp的代码:

修改acrxEntryPoint.cpp中的错误:
记住需要引用头文件
#include "AeccCustomDraw.h"
#include "C3DCustomDraw.h"

编译,加载,创建一条路线,程序将自动输出路线的句柄。


这是一个简单的测试,
其中项目设置的步骤很容易出错,
一不小心就可能掉进坑里,
造成程序无法编译。

转载于:https://www.cnblogs.com/myzw/p/8403936.html

转载地址:https://blog.csdn.net/weixin_33720078/article/details/93679039 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:JdbcTemplate简单介绍
下一篇:Shell脚步学习指南提点

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2023年03月16日 12时37分08秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章

python中基础知识_Python中的一些基础知识 2019-12-02 01:43:35
高通的快充协议_高通发布QC5.0快充技术最高100W+功率!手机厂商私有协议更好... 2019-12-02 01:43:32
csv逗号分隔符转换_文件系统(02):基于SpringBoot管理Xml和CSV 2019-12-02 01:43:32
python函数作用的描述_python基础之函数内容介绍 2019-12-02 01:43:33
python存数据到impala_0039-如何使用Python Impyla客户端连接Hive和Impala 2019-12-02 01:43:33
python设计模式pdf_精通python设计模式豆瓣-精通python设计模式第二版电子书pdf下载-精品下载... 2019-12-02 01:43:33
eclipse代码量统计插件_推荐一波代码量、行数、提交量、作者等全维度统计神器... 2019-12-02 01:43:33
python运维脚本部署jdk_Python+PyDev+Jdk+Eclipse开发环境部署 2019-12-02 01:43:33
idea重写接口没有@override_1.重载和重写的区别 2019-12-02 01:43:33
python爬取网页代码_python爬虫爬取网页的内容和网页源码不同? 2019-12-02 01:43:31
采样频率和带宽的关系_发送端测试的主力设备 - 实时示波器朝向高带宽高位数发展... 2019-12-02 01:43:31
python线程监控_Python 使用摄像头监测心率!这么强吗? 2019-12-02 01:43:31
win7安装python3.6失败_win7下python3.6安装配置方法图文教程 2019-12-02 01:43:31
python读取sas数据集_Python 数据处理库 pandas 入门教程基本操作 2019-12-02 01:43:31
python3字符串操作_python3字符串常用方法 2019-12-02 01:43:32
python字典添加元素使用技巧大全_字典里添加元素有哪些方法 2019-12-02 01:43:32
windows安装python3步骤_windows下python3第三方库安装方法总结 2019-12-02 01:43:29
python 通过模板生成文章_自动生成文章_python自动生成文章 - 云+社区 - 腾讯云 2019-12-02 01:43:30
python多线程下载编程_Python多线程结合队列下载百度音乐代码详解 2019-12-02 01:43:30
python包管理工具pip_pip_python包管理工具(pip)下载 v9.0.1官方版 - 121下载站 2019-12-02 01:43:30