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

本文关键字:以在 DLL C++ | 更新日期: 2023-09-27 18:31:31

我是一名Linux C++开发人员,我需要为Windows编写C++dll,这将用于C#应用程序。

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

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

非常感谢您的帮助。

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

您可以使用

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

你想要 DllImport

这里有一堆信息:-

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

以及Google上还有很多东西,以及与DllImport相关的许多堆栈溢出问题

有很多方法可以做到这一点。您可以在C++中编写一个CLR dll,该接口放置了一个C#可以直接"对话"的接口。这是一个很好的选择,因为您可以保持本机C++静止,而不是让所有代码都基于 CLR。

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

您还可以使用 dllimport 和好友并创建标准 dll。

你有没有想过将 Dll 保留在 C++(端口然后在 VS.NET 下重新编译)比 C# 端口少。

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

看看本教程。它显示了完成所需操作的两种方法: 如何封送C++类