编写非托管C ++ DLL以在C#中使用

时间:2012-04-17 04:18:53

标签: c# c++ windows visual-studio-2010 dll

我是Linux C ++开发人员,我需要编写用于Windows的C ++ dll,它将在C#应用程序中使用。

问题是将DLL导入C#,我不知道该怎么做。在我朋友的项目中很可能会使用任何类型的非托管dll,我负责这样做:-D

我需要导入DLL中的所有对象和函数,而我的搜索只能让我得到DllImport等等。

非常感谢帮助。

5 个答案:

答案 0 :(得分:2)

您可以使用C ++ / CLI作为非托管C ++的包装。有关C ++ / CLI的更多信息及其功能,您可以使用此链接

http://www.functionx.com/cppcli

您可以快速浏览一下

http://www.codeproject.com/Articles/19354/Quick-C-CLI-Learn-C-CLI-in-less-than-10-minutes#A8

答案 1 :(得分:0)

你想要DllImport

这里有很多信息: -

http://msdn.microsoft.com/en-us/library/aa288468(v=vs.71).aspx

还有很多谷歌以及许多与DllImport相关的stackoverflow问题

答案 2 :(得分:0)

有很多方法可以解决这个问题。你可以在C ++中编写一个CLR dll,它可以放置一个C#可以直接“对话”的接口。这是一个很好的选择,因为你可以保持原生C ++,而不是让你的所有代码都是基于CLR的。

对C ++ / CLI进行一些搜索

你也可以使用dllimport和朋友创建一个标准的dll。

答案 3 :(得分:0)

您是否认为将Cll中的Dll(在VS.NET下重新编译的端口)保留在比C#端口更少的工作量。

我过去制作了一个共享内存DLL,允许LabVIEW(Windows7)和Winforms C#.NET应用程序。通过此dll共享数据存储。

答案 4 :(得分:0)

看一下本教程。它显示了两种实现您想要的方法:How to Marshal a C++ Class