Fairly often we get questions from developers new to TWAIN asking why their application works great when compiled as a 32-bit application but none of their scanners show up in x64 bit mode. (With the possible exception of a few software based testing scanners.)
The reason your scanner is missing when you compile as a x64 bit application is that your scanner doesn't have a 64-bit TWAIN driver. Yes, it supports your 64-bit operating system, but it is still only a 32-bit driver and 32-bit implementation of TWAIN. In order to show up to TWAIN in a 64-bit application it needs to implement the full 64-bit TWAIN interface. This limitation is not unique to us, all products that use TWAIN have this same exact limitation.
We provide 64-bit builds of our DotTwain DLLs so that you can be ready when the device manufacturers do release 64-bit drivers. The TWAIN 64-bit specification has been out a few years now, so realistically manufacturers could release devices that support 64-bit TWAIN communication any time now. It is just easier for both you and us to have them available now rather than playing catch up once these devices are available.
However, for now, until you actually have a scanner in your possession that has genuine 64-bit drivers you will need to target 32-bit TWAIN.
Also, note: if you have never installed any 64 bit TWAIN drivers/data sources, you may run into an exception when attempting to invoke commands that communicate with the system Twain manager (Acquisition.ShowSelectSource(), Device.TryOpen(), Device.Acquire(), etc...) you'll want to gracefully handle that exception to inform your user that the required TWAIN manager is not present and that they will need to install a valid 64 bit twain driver in order to use scanning within that application.
The TWAIN working group has created a TWAIN Sample DataSource. You can download it here:
Please note: for actual 64 bity version, make sure you download the installer for win64