project를 32bit에서 64bit로 변경하는 과정
암호화 라이브러리가 32bit 버전이라 project를 32bit 버전으로 사용하고 있었다.
20-0720 암호화 라이브러리를 64bit release, debug 버전 빌드를 완료함
HyperBridge 빌드버전을 WIN32 → x64로 번경 후 build
build는 성공했으나 debug 모드로 실행시 DeviceManager 초기화 하는 부분에서 오류발견
DeviceManager deviceManager = new DeviceManager();
deviceManager.Open(); //exception. Cannot initialize the device manager.
32, 64 버전의 Vintasoft.Twain.dll을 import
vintasoft 11 sdk 방문
Issue 발견
64bit application은 twain 2.x를 사용해야한다.
샘플코드로 테스트 코드를 작성
이미 설치되어 있던 스캐너 드라이버를 찾지 못하는 이슈가 확인됨.
twaindsm을 사용하는 scanner driver가 한정적인 것으로 확인됨.
EPSON DS-1630, Cannon DG-1130 32, 64 bit driver 설치
32 bit
64 bit
Canon DR-1130 64 bit driver가 twaindsm을 통해 감지되지 않는 것을 확인 함.
Vintasoft SDK 10버전 이상으로 사용
/// <summary>
/// Shows a list of 32-bit TWAIN drivers in 64-bit application.
/// </summary>
/// <remarks>
/// This code must be used in 64-bit application.
/// </remarks>
void Use32BitTwainDriversIn64BitApplication()
{
// create the device manager
using (DeviceManager deviceManager = new DeviceManager())
{
// specify that TWAIN device manager 2.x must be used
deviceManager.IsTwain2Compatible = true;
// specify that 64-bit TWAIN device manager 2.x must use 32-bit devices
deviceManager.Use32BitDevices();
// open the device manager
deviceManager.Open();
// show a dialog for selecting 32-bit TWAIN driver
deviceManager.ShowDefaultDeviceSelectionDialog();
}
}
출처:
64bit 버전에서 스캐너 드라이버 제한
Leadtools.dll 사용