C# 如何从C++;tesseract图书馆? 请指导我如何创建一个C++包来访问C++中的TestSerACT库的方法。 < P>是一个关于你可以遵循的代码项目的好文章。p>

C# 如何从C++;tesseract图书馆? 请指导我如何创建一个C++包来访问C++中的TestSerACT库的方法。 < P>是一个关于你可以遵循的代码项目的好文章。p>,c#,c++,wrapper,dllimport,tesseract,C#,C++,Wrapper,Dllimport,Tesseract,在选择重用非托管库的方法时,通常 有三种选择: IJW或者它只是起作用。这是.NET提供的最大功能之一 该框架已提供给开发人员。你只要重新编译旧的 新.NET平台上的代码。不需要或几乎不需要改变。 别忘了;它只在C++语言中工作。 COM。COM模型适用于非托管和托管服务器 环境。在.NET上执行COM调用非常简单。 但是,如果您的非托管类尚未准备好COM,则可能不会 重写所有旧代码以支持COM P/Invoke或平台调用。此机制允许您导入 类作为属性级别的函数。基本上,你需要进口 一个接一个地

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

  • IJW或者它只是起作用。这是.NET提供的最大功能之一 该框架已提供给开发人员。你只要重新编译旧的 新.NET平台上的代码。不需要或几乎不需要改变。 别忘了;它只在C++语言中工作。
  • COM。COM模型适用于非托管和托管服务器 环境。在.NET上执行COM调用非常简单。 但是,如果您的非托管类尚未准备好COM,则可能不会 重写所有旧代码以支持COM
  • P/Invoke或平台调用。此机制允许您导入 类作为属性级别的函数。基本上,你需要进口 一个接一个地将方法作为单独的函数初始化,就像您对 Win32 API
  • 对于你的情况,我会建议你的建议。它允许托管代码调用在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();
        }
    }
    
    还有一篇与此相关的老文章,你可以。

    是一篇关于CodeProject的好文章,你可以跟随

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

  • IJW或者它只是起作用。这是.NET提供的最大功能之一 该框架已提供给开发人员。你只要重新编译旧的 新.NET平台上的代码。不需要或几乎不需要改变。 别忘了;它只在C++语言中工作。
  • COM。COM模型适用于非托管和托管服务器 环境。在.NET上执行COM调用非常简单。 但是,如果您的非托管类尚未准备好COM,则可能不会 重写所有旧代码以支持COM
  • P/Invoke或平台调用。此机制允许您导入 类作为属性级别的函数。基本上,你需要进口 一个接一个地将方法作为单独的函数初始化,就像您对 Win32 API
  • 对于你的情况,我会建议你的建议。它允许托管代码调用在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();
        }
    }
    

    还有一篇与此相关的老帖子,你可以。

    我已经尝试了下面提到的链接,@UweKeim感谢你的更新,我的目标是创建一个类似于tessnet2的C#包装库,我不能使用tessnet2。我已经尝试了下面提到的链接,@UweKeim感谢你的更新,我的目标是创建一个类似于tessnet2的C#包装器库,但我不能使用tessnet2。