MyNameIsLiLei 发表于 2022-7-8 14:41

CAD二次开发多版本编译的一次记录

本帖最后由 MyNameIsLiLei 于 2022-7-8 14:50 编辑

1.新建项目,这里以CAD2014、2016、2019三个版本举例。添加CAD2014、CAD2016、CAD2019三个项目

guohq 发表于 2022-7-8 16:04

狗尾续下貂:lol

;建个对照表
(setq DLL '(("18.0" "CAD2010.dll")
          ("19.1" "CAD2014.dll")
          ("20.0" "CAD2016.dll")
          ("20.1" "CAD2016.dll")
          ("21.0" "CAD2017.dll")
          ("22.0" "CAD2018.dll")
          ("23.0" "CAD2019.dll")
          ))

(command "netload" (strcat "E:/TEST/" (cadr (assoc (substr (getvar "acadver") 1 4) DLL))) ) ;路径自己改

ProgramFancier 发表于 2022-7-9 18:15

我以前是通过自定义编译前事件来修改 .csproj 文件对不同版本CAD条件编译,只需要创建一个项目,缺点是一次只能编译一个版本并需要重新加载项目。
现在有 MSBuild 这一神器,一个 csproj 就可以对多个平台编译,楼主可以了解下。

pxt2001 发表于 2023-3-5 10:11

MyNameIsLiLei 发表于 2022-7-8 14:44
2.给每个项目添加相关的引用。

请问:
添加引用:AcCui.dll,acdbmgd.dll,acmgd.dll;这三个dll在CAD的安装目录下。意味着要同时安装三个版本的CAD?

MyNameIsLiLei 发表于 2022-7-8 14:44

本帖最后由 MyNameIsLiLei 于 2022-7-8 14:51 编辑

2.给每个项目添加相关的引用。

MyNameIsLiLei 发表于 2022-7-8 14:52

3.我们在低版本里面添加代码,在高版本里面引用低版本里面的代码(或者新建一个公共目录,存放所有代码)。

MyNameIsLiLei 发表于 2022-7-8 14:53

4.这里给CAD2014添加了一个Test.cs类,并添加测试代码。

MyNameIsLiLei 发表于 2022-7-8 14:55

5.在CAD2016项目里右键 -- 添加 -- 现有项 ,找到上面Test.cs所在的文件目录 注意右下角的添加 ,边上有个三角小箭头 ,展开-- 点击添加为链接。

MyNameIsLiLei 发表于 2022-7-8 14:56

CAD2019操作同CAD2016,添加完后结果是这样的。

MyNameIsLiLei 发表于 2022-7-8 14:57

现在就可以直接同时生成多个版本的dll啦。

注:如果低版本和高版本在某些函数接口有差别的话,我们可利用条件编译针对不同的版本做不同的处理。


guohq 发表于 2022-7-8 15:40

再补一个动态加载DLL的代码就全了:lol

229096767 发表于 2022-7-8 17:54

谢谢分享            
页: [1] 2
查看完整版本: CAD二次开发多版本编译的一次记录