2012-03-08 58 views
3

我只是在寻找现在的选项,但我有大量的C库,它们是以静态链接的.lib的形式在Visual Studio 6中编写的。需要在Visual Studio 2010中完成更新的开发,将调用这些库,并且已经决定尽管有可能的解决方案来调用这些旧库,但他们应该更新到Visual Studio 2010.作为该转换的一部分,它是看起来很可能我们不妨把它们转换成OO语言。无论是C++,C++/CLR还是C#都需要讨论。将Visual Studio 6库转换为Visual Studio 10

新的应用程序可能用C#编写,将调用这些库。

什么是最好的将库转换为?它也需要是一个相当简单的(即不是太耗时的)选项。我认为将它们转换为C#将会工作太多。非托管C++会是最简单的,但是C++/CLR会成为一个好的中间地带吗?我在这里想到,从C#调用C++/CLR比非托管C++更容易,因此值得在这里做更多的工作。

+2

自VS6以来发生了很多事情;现在可以有一个第三方库,可以简单地替换你的?我知道这对我以前维护的很多事情都是正确的。 – tenfour 2012-03-08 10:07:01

+3

“作为转换的一部分,我们很可能会将它们转换为OO语言”< - 这不是“转换”,那是“重写”。你确定你需要吗? – AakashM 2012-03-08 10:10:00

+1

您是否还会有(纯粹的)使用这些库的C++应用程序? – 2012-03-08 10:13:49

回答

5

从头开始重写不是一个选项。有超过100个库 和很多代码。

如果重写它们不是一个选项,我不明白这个说法。

作为该转换的一部分,看起来很可能我们不妨将它们转换为OO语言。无论是C++,C++/CLR还是C#都是 以供讨论。

您不能将C代码“转换”为C#和/或C++/CLR代码。唯一正确的术语是完全重写。这听起来好像只是在最新的visual studio中加载项目并按原样编译它。

如果它已经在那里工作是没有理由改变该dll编写语言。

通过它的声音......你似乎并不被familar与任何语言的你建议考虑您对术语unmanaged C++有疑问。

我们已经大不如前留下这些库为C 写在VS 6,并试图从写于2010年VS它 C#打电话给他们的路线有一点点凌乱,并决定,这是不长期的方向是很好的 。

这意味着您唯一真正的选择是重写库,以便它们更易于使用。只是切换到C++不会解决您遇到的问题。您可以在C++中使用C风格约定,而不会出现问题。

+0

我不同意这句话,“如果它已经有效,那么没有理由改变dll写入的语言。”原因是因为用C++编写的项目是非托管代码,很难合作。它可以使用更现代化的开发工具大幅提高生产力。 – bunggo 2014-11-07 17:59:28