VB.NETAutoCAD、ZwCAD和BricsCAD使用相同的FORM
我有一个使用表单的项目,需要为AutoCAD生成一个DLL,另一个用于ZwCAD,另一个用于BricsCAD。目前我为每个人制作了一份副本,但当我更改一个FORM时,必须更新其他表单以创建DLL。
它使用相同的FORM来创建DLL 3 CAD一次只编译一个,还是为3个CAD创建相同的DLL?
我正在使用VB.NETExpress 2010!
**** Hidden Message *****
最好的选择是在每个代码文件中使用条件编译指令。
例如
#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 Visual Studio 2015中的新共享项目自动执行“链接文件”并使其更易于处理。
共享项目可以使用. NET 2.0及更高版本创建。
我的理解是,在AutoCAD,ZwCAD和BricsCAD中,所述的一个或多个表单(外观,用户交互引发的事件)应该是相同的。因此,表单应位于其自己的项目 (DLL) 中,以便可以在 3 个产品之间共享。但是,为了共享视图(窗体),您应该将业务流程/数据与视图完全分离,以便视图仅充当呈现数据和进行用户交互(并将交互传递到业务层)的角色。
您可能希望查看 MVC 模式。也就是说,View(窗体)项目仅包括可以共享的视图,可能是数据模型(如果 3 个产品可以共享相同的数据模型)。最有可能的是,每个产品的控制器将不同。在共享视图项目中,可以定义一个 IController 接口,然后实现 3 个不同的控制器,依此类推。 非常感谢
我忘记了条件编译指令。
好的。 有几种方法可以在不同程度的复杂性下做到这一点。看。。。
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.
我早期的作品留在这里作为对他人的警告。也因为那里有一些有用的提示。
...
页:
[1]