0

这是一个相当普遍的问题,因为我对如何使用不同版本的 Microsoft Visual C++ (MSVC) 及其 C# 绑定来编译 GDAL 感到困惑。我了解 MSVC 是一个编译器,并且有不同的版本(MSVC 2003、2005、2008、2010、2012)。我也知道 C# 与 .NET 框架相关联,这是一个软件开发框架,也有不同的版本(.NET 1.0 到 5.0)。

我想使用 VS 2012 编译 GDAL(因为我想使用此处提供的 SDK 构建中未包含的扩展)以供 C#(通过其 C# 绑定)使用,我必须使用哪个版本的 MSVC?我猜答案是 MSVC 2012(相同的 .NET 框架版本),但实际上为什么呢?GDAL 构建将创建 DLL。.NET 框架是否不向后兼容,因为我可以在使用 VS 2012 的 C# 项目中使用用旧版本的 MSVC 编译的 DLL?

任何启蒙表示赞赏。

4

1 回答 1

2

这种关系在很大程度上是无关紧要的,除非你在玩弄 C++/CLI(它看起来不像你)。

C# 通过使用 P/Invoke (aka DllImport) 或通过 COM 使用本机 DLL,只要导出格式正确(并且它们位于正确的 ISA 中以执行.NET 平台)。

使用与 VS 相同的 C++ 编译器可以省去寻找替代工具的麻烦并简化构建过程。

于 2013-05-13T21:12:08.517 回答