首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将AutoLISP遗留代码转换为C#的最有效方法是什么?

将AutoLISP遗留代码转换为C#的最有效方法是什么?
EN

Stack Overflow用户
提问于 2014-05-16 17:05:10
回答 2查看 473关注 0票数 0

我从事的一个项目,主要工作在AutoCAD,以设计和制造预制建筑组件,如屋顶桁架。我们的目标之一是重新设计一个用LISP语言编写的程序,用于设计屋顶桁架。我们将在C#中重写LISP代码,并将其逐步实现到它们所设置的当前库中。

我的问题是,我的任务是构建一个基本的LISP到C#转换器。经过一些研究(正如Google的结果很快表明,这样的事情并不存在),我开始思考如何转换这些遗留代码将更有效。用C#来分析和重写LISP代码更好,还是应该继续为AutoLISP代码开发一个基本的转换器?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-16 17:32:06

您应该使用LISP代码块并在C#中重写。

即使用C#编写通用LISP解释器比用c#重写LISP (这是非常不可能的),LISP也可能运行AutoCAD命令,比如输入AutoCAD命令行,而不是以ObjectARX的方式进行操作。因此,您还需要将命令转换为使用ObjectARX API。

票数 2
EN

Stack Overflow用户

发布于 2014-05-16 19:24:51

C#是一种编译的面向对象的编程语言,而AutoLISP是一种面向表达式的解释语言.因此,如果不付出巨大的努力,就永远不会有一种真正直截了当的方式将其中一种转化为另一种。

值得注意的是,AutoLISP具有快速修改而无需重新编译的灵活性。使用本机进程内C#的好处是,与类似的LISP方法相比,它速度非常快。我发现有一个很好的中间点,可以用C#的速度和功能来保持LISP的灵活性,它利用了LispFunction命令标志和.NET原生API中的ResultBuffer类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23700864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档