我是Linux C ++开发人员,我需要编写用于Windows的C ++ dll,它将在C#应用程序中使用。
问题是将DLL导入C#,我不知道该怎么做。在我朋友的项目中很可能会使用任何类型的非托管dll,我负责这样做:-D
我需要导入DLL中的所有对象和函数,而我的搜索只能让我得到DllImport等等。
非常感谢帮助。
答案 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