Private Declare Function InitializeEngine Lib "FREngine.dll" ( _ CustomerProjectID As String, _ LicensePath As String, _ LicensePassword As String, _ FREngineDataFolder As String, _ FREngineTempFolder As String, _ IsSharedCPUCoresMode As Boolean, _ ByRef Engine As FREngine.IEngine) _As Integer
CustomerProjectID[in] Customer Project ID를 포함하는 string입니다.
라이브러리 초기화 중에는 이 Customer Project ID에 해당하는 Developer 또는 Runtime 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 dataFREngineDataFolder 값을 설정하면 모든 보조 정보가 새 데이터 폴더에 기록됩니다.예를 들어, 애플리케이션의 인터페이스 언어 설정이 FineReader Engine을 사용하는 다른 애플리케이션과 달라야 하는 경우 기본값을 변경해야 할 수 있습니다. 기본값을 변경한 후에는 새 데이터 폴더에 대한 전체 제어 권한이 있는지 확인하십시오.FREngineTempFolder[in] ABBYY FineReader Engine 임시 파일용 폴더 경로를 포함합니다. 기본값은 %TEMP%\ABBYY FineReader Engine 12 폴더입니다.IsSharedCPUCoresMode[in] CPU 코어를 공유 모드로 사용할지 여부를 지정합니다. CPU 코어 사용 모드에는 분리 모드와 공유 모드의 두 가지가 있습니다. 분리 모드에서는 ABBYY FineReader Engine이 라이선스에서 허용하는 수보다 많은 process를 사용하지 않습니다. 공유 모드에서는 process를 원하는 만큼 실행할 수 있지만, 이러한 모든 process는 IMultiProcessingParams::SharedCPUCoresMask 속성에 지정된 CPU 코어만 사용합니다.
이 매개변수는 Windows용 ABBYY FineReader Engine에서는 무시됩니다.
Engine[out, retval] 결과 Engine 객체의 인터페이스 포인터를 받는 IEngine* 포인터 변수에 대한 포인터입니다.
ABBYY FineReader Engine를 사용하는 애플리케이션의 단일 인스턴스에서는 이 함수를 사용해 Engine 객체를 하나만 생성할 수 있습니다. Engine 객체를 반복해서 생성하려고 해도 동일한 객체가 반환됩니다.
Engine 객체를 생성하는 데는 다소 시간이 걸릴 수 있습니다. 초기화 중 엔진은 아래에 나열된 기본 라이브러리와 함께 많은 추가 동적 라이브러리를 로드합니다:
Linux: libFREngine.so
macOS: libFREngine.dylib
Windows: FREngine.dll
네트워크 라이선스를 사용하는 경우 Linux와 Windows에서는 라이선스 서버와의 통신 때문에 초기화에 시간이 더 걸릴 수도 있습니다. 네트워크 연결이 필요한 성능을 충족하는지 확인하세요. 네트워크 라이선스를 안정적으로 사용하려면 최소 100 Kb/s의 대역폭을 권장합니다.
다중 프로세서 시스템에서 Engine 객체를 생성하고 실행할 수는 있지만, 각 프로세스에는 Engine 객체를 하나만 둘 수 있습니다. 동일한 프로세스에서 InitializeEngine을 두 번째로 호출하면 기존 객체에 대한 참조가 반환됩니다. 따라서 각 프로세스마다 InitializeEngine 함수를 호출해 별도의 Engine 객체를 생성해야 합니다.
Windows용 ABBYY FineReader Engine 구현에서 다중 프로세서 시스템을 사용하는 경우 Engine 객체를 로드하는 다른 방법도 유용할 수 있습니다.
ABBYY FineReader Engine은 다른 동적 라이브러리의 진입점이나, 동적 라이브러리에 구현된 정적 및 전역 객체의 생성자와 소멸자에서 초기화하거나 초기화 해제하지 마세요. 이들은 동적 라이브러리 진입점에서 호출되기 때문입니다.
사용자는 다른 위치에서 ABBYY FineReader Engine을 초기화하고 초기화 해제해야 합니다. 예를 들어 실행 파일 모듈의 main 또는 WinMain 함수에서 수행할 수 있습니다.
: Windows에서는 Win32 LoadLibrary 및 FreeLibrary 함수가 재진입 가능하지 않기 때문에 이러한 제한이 있습니다.
초기화 중 ABBYY FineReader Engine은 LC_CTYPE 설정을 운영 체제 기본값으로 재설정합니다. 애플리케이션이 로캘 종속 서비스(특히 Windows의 msvcrt.dll)에 의존하는 경우 이 점을 고려해야 합니다..NET을 사용하는 Windows 개발자는 애플리케이션의 main 함수에 [STAThread](단일 스레드 아파트 모델) 특성을 지정해야 합니다. 그렇지 않으면 오류가 발생할 수 있습니다:
[STAThread]public static void Main(){ ...}
유효한 Customer Project ID 번호를 입력 매개변수로 전달해야 합니다. 그러나 처리 메서드를 호출하기 전에 엔진 객체의 SetCurrentLicense 메서드를 호출하여 처리에 사용할 라이선스를 선택할 수 있습니다. 사용 가능한 활성화 라이선스 목록을 확인하려면 GetAvailableLicenses 메서드를 사용하고, 현재 사용하도록 선택된 라이선스를 확인하려면 엔진 객체의 CurrentLicense 속성을 사용합니다.