乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 91|回复: 5

VB.NETAutoCAD、ZwCAD和BricsCAD使用相同的FORM

[复制链接]

29

主题

94

帖子

14

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
198
发表于 2015-8-18 23:51:04 | 显示全部楼层 |阅读模式
我有一个使用表单的项目,需要为AutoCAD生成一个DLL,另一个用于ZwCAD,另一个用于BricsCAD。
目前我为每个人制作了一份副本,但当我更改一个FORM时,必须更新其他表单以创建DLL。
它使用相同的FORM来创建DLL 3 CAD一次只编译一个,还是为3个CAD创建相同的DLL?
我正在使用VB.NETExpress 2010!

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2015-8-19 02:55:16 | 显示全部楼层

最好的选择是在每个代码文件中使用条件编译指令。
例如
#if Bricscad
//ODA
使用Teigha.Runtime
使用Teigha.DatabaseServices
使用Bricscad.ApplicationServices
使用Bricscad.EditorInput
使用Teigha.Geometry
使用_ AcRx=Teigha.Runtime
使用_AcAp=Bricscad.ApplicationServices
使用_AcDb=Teigha.DatabaseServices
使用_ AcGe=Teigha.Geometry
使用_AcEd=Bricscad.EditorInput
使用_AcGi=Teigha.GraphicsInterface
使用_ AcClr=Teigha.Colors
使用_ AcWnd=Bricscad.Windows
#elif AutoCAD
使用Autodesk.AutoCAD.Runtime
使用Autodesk.AutoCAD.ApplicationServices
使用Autodesk.AutoCAD.DatabaseServices
使用Autodesk.AutoCAD.Geometry
使用Autodesk.AutoCAD.EditorInput
使用Autodesk.AutoCAD.GraphicsInterface
使用Autodesk.AutoCAD.Colors
使用Autodesk.AutoCAD.Windows
使用_AcRx=Autodesk.AutoCAD.Runtime
使用_AcAp=Autodesk.AutoCAD.ApplicationServices
使用_AcDb=Autodesk.AutoCAD.DatabaseServices
使用_AcGe=Autodesk.AutoCAD.Geometry
使用_AcEd=Autodesk.AutoCAD.EditorInput
使用_AcGi=Autodesk.AutoCAD.GraphicsInterface
使用_AcClr=Autodesk.AutoCAD.Colors
#endif
您还需要在项目属性/构建页面中设置编译符号
因此,在autocad构建中可以定义autocad,在Bricscad项目中可以定义Bricscad
现在的诀窍是在一个项目中开发代码,并将这些文件“链接”到其他cad项目-https://msdn.microsoft.com/en-us/library/windows/apps/jj714082(v=vs.105)。aspx<br>链接表单文件有时可能有点棘手,但您会得到它。<br>hth
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2015-8-19 04:13:16 | 显示全部楼层
Visual Studio 2015中的新共享项目自动执行“链接文件”并使其更易于处理。
共享项目可以使用. NET 2.0及更高版本创建。
回复

使用道具 举报

29

主题

94

帖子

14

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
198
发表于 2015-8-19 09:35:54 | 显示全部楼层
我的理解是,在AutoCAD,ZwCAD和BricsCAD中,所述的一个或多个表单(外观,用户交互引发的事件)应该是相同的。因此,表单应位于其自己的项目 (DLL) 中,以便可以在 3 个产品之间共享。但是,为了共享视图(窗体),您应该将业务流程/数据与视图完全分离,以便视图仅充当呈现数据和进行用户交互(并将交互传递到业务层)的角色。
您可能希望查看 MVC 模式。也就是说,View(窗体)项目仅包括可以共享的视图,可能是数据模型(如果 3 个产品可以共享相同的数据模型)。最有可能的是,每个产品的控制器将不同。在共享视图项目中,可以定义一个 IController 接口,然后实现 3 个不同的控制器,依此类推。
回复

使用道具 举报

23

主题

239

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
327
发表于 2015-8-19 16:49:54 | 显示全部楼层
非常感谢
我忘记了条件编译指令。
好的。
回复

使用道具 举报

69

主题

875

帖子

15

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1146
发表于 2015-8-23 19:30:32 | 显示全部楼层
有几种方法可以在不同程度的复杂性下做到这一点。看。。。
http://www.theswamp.org/index.php?topic=49298.msg543961#msg543961
http://www.theswamp.org/index.php?topic=41868.msg497358
http://www.theswamp.org/index.php?topic=49961(杰夫已经在上面链接了这一点)
诺曼的建议非常值得注意 - 把你的共同点放在共同的地方,把具体的事情放在它们的具体位置。我不是多个DLL的粉丝,但这只是我,我不认为它一定是聪明的,因为这是DLL的工作方式。
====== EDIT 2015 年 10 月 2 日 ====
我在 https://github.com/CADbloke/CodeCloner 上遇到了另一个裂缝
,这一次我专注于将源代码传播到控制其所有构建设置的目标项目。显然,我们中的一些人(所有人)虽然在一个项目中构建了72个构建,但有点难以管理

那里有一个广泛的自述文件,所以我不会在这里重复它。我很想听听任何想法,建议,WTF.
我早期的作品留在这里作为对他人的警告。也因为那里有一些有用的提示。
...
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 00:42 , Processed in 0.263566 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表