如何在 C# 中编写我自己的包装器?

Posted

技术标签:

【中文标题】如何在 C# 中编写我自己的包装器?【英文标题】:How to write my own wrapper in C#? 【发布时间】:2009-04-14 21:58:14 【问题描述】:

在我的另一个问题中,我一直在努力寻找知道在哪里可以找到 C# 的免费开源 OCR 库的人。但是,似乎只有 C++ 库,显然 C++ 不是 C#。

其中一个回复建议用 C# 编写我自己的包装器。我几乎不知道该怎么做,在哪里学习,或者它实际上是什么 - 除了我相信它通过更改方法调用在 dll 中调用 C++ 方法,.. 这只是假设,确实。

请再帮一个新手。谢谢

【问题讨论】:

【参考方案1】:

您可以从这里开始:

Call Unmanaged Code. Part 1 - Simple DLLImport

【讨论】:

链接已失效【参考方案2】:

如果您的包装非常简单,您可以使用P/Invoke。如果您确实想要托管对象,您最简单的解决方案可能是在 C++/CLI(以前的托管 C++)中编写包装器,因为它为托管/非托管互操作提供了完整的功能集。

【讨论】:

【参考方案3】:

这就是我的做法Interop。它向您展示了如何处理简单的情况(BOOL 到 bool)以及一些更困难的情况(传递带有指向托管内存的指针的结构)。祝你好运。

【讨论】:

以上是关于如何在 C# 中编写我自己的包装器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中用我自己的包装第三方装饰器

如何通过 Visual Studio COM 包装器(或其他方式)在 C# 中使用 C++ 属性联合

如何正确地将浮点指针从 C 库传递到其 C# 包装器

使用 C++ 包装器时如何访问 C# .dll 属性

如何编写包装类以将 Qt 信号映射到 C# 事件(通过 C++/CLI)

用于 C# 的 Lua 包装器? [关闭]