メインコンテンツへスキップ
この関数は、IEngine インターフェイスへのポインターを取得するために使用します。入力パラメーターとして Customer Project ID 番号を受け取ります。これは、プロジェクトで使用するすべての Developer ライセンスおよびランタイム ライセンスに共通の英数字の string です。
Linux および Windows のユーザーの場合、この関数を使用すると、必要に応じてオンライン ライセンス認証に簡単にアクセスできるほか、初期化時にいくつかの追加パラメーターを指定することもできます。

構文

C++

C#

Visual Basic .NET

パラメーター

CustomerProjectID [in] Customer Project ID を含む string です。
ライブラリの初期化時に、この Customer Project ID に対応する Developer または ランタイム License が、使用可能なすべてのライセンスの一覧から検索されます。対応するライセンスが見つからない場合は、最後に確認されたライセンスに対するエラーが発生します。ただし、このパラメーターに 0 を渡しておき、他のライブラリ メソッドを呼び出す前に IEngine::SetCurrentLicense メソッドを呼び出すことで、後からライセンスを選択することもできます。
LicensePath [in] オンライン ライセンス ファイルの完全なファイル名です。オンライン ライセンスを使用しない場合は、代わりに空の string "" または Null ポインターを渡します。空の string "" または Null ポインターを渡してください。 macOS ユーザー向け: このパラメーターは将来の使用のために予約されています。 LicensePassword [in] オンライン ライセンスの password です。オンライン ライセンスを使用しない場合は、代わりに空の string "" または Null ポインターを渡します。 macOS ユーザー向け: このパラメーターは将来の使用のために予約されています。 FREngineDataFolder [in] ABBYY FineReader Engine がユーザー固有のデータを保存するフォルダーへのパスを指定します。 既定では、自動インストールの場合:
%ProgramData%\ABBYY\SDK\12\FineReader Engine for auxiliary engine data
さらに、Linux および Windows の場合:
%ProgramData%\ABBYY\SDK\12\Licenses for license data
FREngineDataFolder の値を設定すると、すべての補助情報は新しいデータ フォルダーに書き込まれます。
たとえば、アプリケーションのインターフェイス言語設定を、FineReader Engine を使用する他のアプリケーションとは異なるものにする必要がある場合は、既定値を変更する必要があります。既定値を変更した後は、新しいデータ フォルダーに対するフル コントロール権限があることを確認してください。 FREngineTempFolder [in] ABBYY FineReader Engine の一時ファイル用フォルダーへのパスを指定します。既定では、%TEMP%\ABBYY FineReader Engine 12 フォルダーです。 IsSharedCPUCoresMode [in] CPU コアを共有モードで使用するかどうかを指定します。CPU コアの使用モードには、分離モードと共有モードの 2 つがあります。分離モードでは、ABBYY FineReader Engine はライセンスで許可されている数を超えるプロセスを使用しません。共有モードでは任意の数のプロセスを実行できますが、それらのプロセスで使用される CPU コアは、IMultiProcessingParams::SharedCPUCoresMask プロパティで指定されたものに限られます。
このパラメーターは、Windows 版 ABBYY FineReader Engine では無視されます。
Engine [out, retval] 結果の Engine object への interface pointer を受け取る IEngine* ポインター変数へのポインターです。

戻り値

この関数は、ABBYY FineReader Engine 関数の標準の戻り値を返すことがあります。

注記

ABBYY FineReader Engine を使用するアプリケーションの単一インスタンス内では、この関数を使用して作成できる Engine オブジェクトは 1 つだけです。Engine オブジェクトを繰り返し作成しようとしても、返されるのは同じオブジェクトです。
Engine オブジェクトの作成には、かなり時間がかかる場合があります。初期化中、エンジンは以下に示すメインライブラリに加えて、多数の追加の動的ライブラリを読み込みます。
  • Linux: libFREngine.so
  • macOS: libFREngine.dylib
  • Windows: FREngine.dll
ネットワーク ライセンスを使用している場合、Linux と Windows ではライセンスサーバーとの通信により、初期化にさらに時間がかかることがあります。ネットワーク接続が必要な性能を満たしていることを確認してください。ネットワーク ライセンスで安定して動作させるには、少なくとも 100 Kb/s の帯域幅を推奨します。
マルチプロセッサシステム上で Engine オブジェクトを作成して実行することは可能ですが、各プロセスで作成できる Engine オブジェクトは 1 つだけです。同じプロセス内で InitializeEngine を 2 回目に呼び出すと、既存のオブジェクトへの参照が返されます。したがって、InitializeEngine 関数を呼び出して、プロセスごとに個別の Engine オブジェクトを作成する必要があります。
マルチプロセッサシステムを含む ABBYY FineReader Engine for Windows の実装では、Engine オブジェクトを読み込むための他の方法も役立つ場合があります。
ABBYY FineReader Engine の初期化および終了処理を、他の動的ライブラリのエントリポイントや、動的ライブラリ内で実装された static オブジェクトおよび global オブジェクトのコンストラクターやデストラクターで行わないでください。これらは動的ライブラリのエントリポイントで呼び出されるためです。
ユーザーは、ABBYY FineReader Engine の初期化および終了処理を別の場所で行う必要があります。たとえば、実行可能モジュールの main 関数または WinMain 関数です。
Windows では、この制限は Win32 の LoadLibrary 関数および FreeLibrary 関数がリエントラントではないことに起因します。
初期化中に、ABBYY FineReader Engine は LC_CTYPE の設定をオペレーティングシステムの既定値にリセットします。アプリケーションがロケール依存のサービス (特に Windows の msvcrt.dll) に依存している場合は、この点を考慮する必要があります。 .NET を使用する Windows 開発者は、アプリケーションの main 関数に [STAThread] (シングルスレッド アパートメント モデル) 属性を必ず指定する必要があります。そうしないと、エラーが発生する場合があります:
有効な Customer Project ID 番号を入力パラメーターとして渡す必要があります。ただし、処理に使用するライセンスは、いずれの処理メソッドを呼び出す前でも、Engine オブジェクト の SetCurrentLicense メソッドを呼び出して選択できます。使用可能なアクティブ化済みライセンスの一覧を確認するには GetAvailableLicenses メソッドを使用し、現在どのライセンスが選択されているかを確認するには Engine オブジェクト の CurrentLicense プロパティを使用します。

サンプル

この関数は、EnginesPool (Win) を除くすべてのコード サンプルで使用されています。

関連項目

ライセンス管理 モジュール DeinitializeEngine Engine オブジェクトを読み込む方法の違い (Win)