c# - 将 Visual Studio 6 库转换为 Visual Studio 10

标签 c# c++ c visual-studio-2010

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

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

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

最佳答案

Rewriting from scratch is not an option. There are over 100 libraries and a lot of code.

如果重写它们不是一个选项,我不理解这个声明。

As part of that conversion, it is looking likely that we might as well convert them to an OO language. Whether that be C++, C++/CLR or C# is up for discussion.

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

如果它已经工作,则没有理由更改 dll 的编写语言。

听上去……考虑到您对术语非托管 C++ 有疑问,您似乎不熟悉您建议的任何语言。

We have already gone down the route of leaving these libraries as C written in VS 6 and trying to call them from C# written in VS 2010. It got a little messy and it was decided that this was not a good long term direction.

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

关于c# - 将 Visual Studio 6 库转换为 Visual Studio 10,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9615803/

相关文章:

C# https 请求总是隧道到服务器,但 Java 只有一次

c++ - Boost.Coroutine 和 Boost.Coroutine2 的区别

c++ 通过引用和指针传递参数

c# - .NET 中用户友好的属性名称,如 Rails 中的属性名称

c# - 表示驼峰类名称中的缩写

c# - UpdatePanel 中的 GridView 页面掉落 1 行

c++ - 编写一个可以嵌入其他应用程序并作为单独进程运行的 shell

找不到错误,但它给了我一个

c++ - 在另一个文件中使用 lex 生成的源代码

c - 未找到 strcpy-sse2-unaligned.S