如何从C++ tesseract库创建C#包装类?

Geo*_*rge 0 c# c++ tesseract dllimport wrapper

请指导我如何创建一个C#包装器来访问C++中的tesseract库的方法.

ABH*_*ABH 5

是关于您可以遵循的CodeProject的好文章.

在选择重用非托管库的方法时,通常有三个选项:

  1. IJW或它只是工作.这是.NET Framework为开发人员提供的最大功能之一.您只需在新的.NET平台上重新编译旧代码.不需要或只需要很少的改变.不要忘了; 它仅适用于C++语言.
  2. COM.COM模型适用于非托管和托管环境.在.NET上执行COM调用很简单.但是,如果您的非托管类不是COM就绪,您可能不会重写所有旧代码以支持COM.
  3. P/Invoke或平台调用.此机制允许您在属性级别将类作为函数导入.基本上,您将类方法作为单独的函数逐个导入,就像使用Win32 API一样.

对于您的情况,我将建议PlaPlatform调用服务(PInvoke).它allows managed code to call unmanaged functions that are implemented in a DLL.例如,看看这个MSDN代码

// PInvokeTest.cs
using System;
using System.Runtime.InteropServices;

class PlatformInvokeTest
{
    [DllImport("msvcrt.dll")]
    public static extern int puts(string c);
    [DllImport("msvcrt.dll")]
    internal static extern int _flushall();

    public static void Main() 
    {
        puts("Test");
        _flushall();
    }
}
Run Code Online (Sandbox Code Playgroud)

还有一个与之相关的旧帖子,你可以在这里查看.