c# - 使用 CLR 编译的 native DLL,我是否必须先公开函数才能使用它们?

标签 c# c++ .net c++-cli clr

<分区>

我刚刚使用 CLR 编译了一个 native C++ DLL,令人惊讶的是我完全没有错误。在我的 C# 项目中引用该项目后,我注意到没有任何公开的内容可供我使用。我认为这会发生。所以我的问题是如何从我的 c# 项目访问这些?就像我说的那样,该项目使用 CLR 编译得很好,我可以引用它,但我无法访问它。

我是否必须通过使用符合 CLR 的代码包装这些函数来公开它们?或者有没有一种方法可以让我轻松地改变一些东西并能够在 .net 中访问这个 DLL?

最佳答案

针对您的情况,有不止一种解决方案:

1) 没有面向对象的 API => 你可以简单地P/Invoke (DllImport)

2) 具有少量实体的面向对象 API => 一个简单的 C++/CLI 包装器

3) 复杂的 OO API => SWIG

4) 如果你需要与整个世界(包括你不知道的技术)的完全互操作=> COM

关于c# - 使用 CLR 编译的 native DLL,我是否必须先公开函数才能使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20086593/

相关文章:

.net - 如何在 IronPython 中以原子方式递增静态成员?

c# - 放大 API 的问题

c# - 如何在sqlbulkcopy中设置自动映射

c# - 使用 C# 的 IDM(Internet 下载管理器)API?

c++ - 表示time_t之间的差异

.net - NET 文件/MIME 类型检测库

c# - 错误消息 : "Access to the path c:\windows\microsoft.net\framework\(version)\Temporary ASP.NET Files\(blah) is denied." - what causes this?

c++ - 未声明的 FTDI 标识符

C++ XOR加密-解密问题

.net - 为什么当参数作为参数传递时 sp_executesql 运行速度变慢