C# 从非托管项目(C/C++VS2005)调用托管代码(C/Visual Basic VS2010)

C# 从非托管项目(C/C++VS2005)调用托管代码(C/Visual Basic VS2010),c#,c++,unmanaged,managed,C#,C++,Unmanaged,Managed,简短版本: Have:DLL的托管代码C/visualbasic,来自Brüel&Kjær SDK 需要:与DLL在我们的旧项目非托管代码C++ Visual Studio 2005 中通信 长版本: 我们有一个用C/C++Visual Studio 2005编写的项目。现在我必须实现与新设备的通信。布吕埃尔和基尔2250SDK诺伊斯 问题是,Brüel&Kjær只支持使用Visual Studio 2010及更高版本的C或Visual Basic托管代码库,但我们的项目是一个旧的非托管C/C+

简短版本:

Have:DLL的托管代码C/visualbasic,来自Brüel&Kjær SDK

需要:与DLL在我们的旧项目非托管代码C++ Visual Studio 2005

中通信 长版本:

我们有一个用C/C++Visual Studio 2005编写的项目。现在我必须实现与新设备的通信。布吕埃尔和基尔2250SDK诺伊斯

问题是,Brüel&Kjær只支持使用Visual Studio 2010及更高版本的C或Visual Basic托管代码库,但我们的项目是一个旧的非托管C/C++代码

问题是,我如何用我的旧C++代码来处理DLL呢? 我没有DLL的源代码,我只有DLL


我希望有人能帮我解决这个问题。提前谢谢

您需要的可能是C++/CLI公共语言基础架构。它基本上使您能够在C++中使用.NET类型。有了它,您可以调用一个C DLL,并使用DLL提供的数据作为.NET类型。既然你已经有了C++代码中的应用程序,我想你不想完全重写它。您将不得不将托管类型转换为非托管类型,这在C++/CLI中是可能的


如果您想了解更多信息,这是一篇关于它的MSDN长篇文章,也是一个有用的快速小教程。

可能与您需要的C++/CLI相同。然而,我想说的是,你还需要抛弃一个10年的IDE,使用一些更新的东西——我甚至不确定你是否能够在VS2005中使用B&K的DLL,但即使你是这样,也没有理由坚持使用它。