我们开发了一个应用程序来控制和扫描任何文件,如图像等,作为一个C# Winform应用程序,它成功地在x86操作系统平台下工作。在应用程序中,我们使用C# twain类发送命令给扫描仪,所以我们可以实现我们想要的。正如大家所知,Twain_32.dll文件是用来运行应用程序和扫描没有失败。
我的问题是,在x64操作系统平台上,我们无法运行应用程序,并得到一个名为*BadImageFormatException*的错误,试图告诉我们这一切都与操作系统类型有关!所以这个错误指向我,我试图在不兼容的操作系统类型下运行应用程序。
我有经验的32位twain dll工作在x64系统下,但另一个问题交叉我的方式。我们运行我们的所有应用程序下的一个父窗体是MDI父窗体。所以,我想使用的窗体作为扫描目的将是一个MDI客户端窗体。所以好吧,虽然我的程序编译为*ANYCPU***,*CLR*将在Windows x64操作系统中作为x64位应用程序运行。这就是为什么,即使我在x64 Win操作系统中将扫描表单编译为x86平台目标,我也无法运行该应用程序。
直到这里,我希望你们都明白我的意思!
作为一个解决方案,我尝试安装*Twack 64*安装文件,以获得TWAINDSM.dll文件,并在x86和x64操作系统机器上运行我的应用程序。此外,在我的自定义twain源代码项目中,我更改为dll导入属性TWAINDSM.dll而不是Twain_32.dll,但它没有工作。
那么,我错过了一些东西在这里或吐温C#应用程序不承认TWAINDSM.dll**作为吐温dll?我被困在这一步,无法前进任何进一步!!!拉我的头发3-4天!!:(
一个快速的手将是很大的帮助,我的家伙!期待着您的消息!!!
1条答案
按热度按时间jxct1oxe1#
我们已经找到了另一种方法,而不是寻找TwainDSM dll的x64,我们不能实际上在我的公司。
我已经发布了一个主题twainforum关于它,一段时间后,一个答案已经返回给我-链接如下:
TwainForum Link That I posted about the issue!
嗯,当时我还没有找到解决的方法。在得到答案之前,我们达成了一个协议,我们可以根据需要使用System.Diagnostics.Process类在x64平台上工作。我使用的代码如下:
但如何从该exe传递参数以在我的项目中使用它?有一种方法可以做到这一点!只需在FileName.exe的Program.cs文件中放入一行代码,如下所示:(我还用竖线分隔参数)
最后我从result value中读取值,如下所示:
我希望你在这里得到的想法和答案是有用的为您的需要!