C++ の tesseract ライブラリのメソッドにアクセスする C# ラッパーを作成する方法を教えてください。
質問する
1713 次
1 に答える
5
これは、フォローできるCodeProjectに関する優れた記事です。
管理されていないライブラリを再利用する方法を選択する場合、通常、次の 3 つのオプションがあります。
- IJWまたはIt Just Works。これは、.NET Framework が開発者に提供した最大の機能の 1 つです。古いコードを新しい .NET プラットフォームで再コンパイルするだけです。変更はほとんど必要ありません。ただし、忘れないでください。C++ 言語でのみ機能します。
- コム。COM モデルは、管理されていない環境と管理されている環境の両方で機能します。.NET で COM Invoke を実行するのは簡単です。ただし、アンマネージ クラスが COM に対応していない場合、古いコードをすべて書き直して COM をサポートすることはおそらくないでしょう。
- P/Invokeまたは Platform Invoke。このメカニズムにより、属性レベルでクラスを関数としてインポートできます。基本的に、Win32 API の場合と同様に、クラス メソッドを個別の関数として 1 つずつインポートします。
あなたの場合、PlaPlatform Invocation Services (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();
}
}
これに関連する古い投稿もあります。ここで確認できます。
于 2012-05-03T05:19:51.700 に答える