用c#编写自动控制扫描仪的dll,如何设置分辨率

问题描述

关于分辨率的部分我自己编写了一个setResolution函数,可是调用之后没有反应,程序不报错但是也进行不下去。不知道哪里写错了,跪求各路大侠指点一下。。代码如下:internalclassTwCapability{//TW_CAPABILITYpublicTwCapability(TwCapcap){Cap=(short)cap;ConType=-1;}publicTwCapability(TwCapcap,shortsval){Cap=(short)cap;ConType=(short)TwOn.One;Handle=Twain.GlobalAlloc(0x42,6);IntPtrpv=Twain.GlobalLock(Handle);Marshal.WriteInt16(pv,0,(short)TwType.Int16);Marshal.WriteInt32(pv,2,(int)sval);Twain.GlobalUnlock(Handle);}~TwCapability(){if(Handle!=IntPtr.Zero)Twain.GlobalFree(Handle);}publicboolsetResolution(TwCapcap,intrval){Cap=(short)cap;ConType=(short)TwOn.Enum;Handle=Twain.GlobalAlloc(0x52,8);IntPtrpv=Twain.GlobalLock(Handle);Marshal.WriteInt32(pv,0,(short)TwType.Fix32);Marshal.WriteInt32(pv,4,(int)rval);Twain.GlobalUnlock(Handle);returntrue;}publicshortCap;publicshortConType;publicIntPtrHandle;}-----------------------------------------------------------------publicvoidAcquire(){TwRCrc;boolresx;boolresy;CloseSrc();if(appid.Id==IntPtr.Zero){Init(hwnd);if(appid.Id==IntPtr.Zero)return;}rc=DSMident(appid,IntPtr.Zero,TwDG.Control,TwDAT.Identity,TwMSG.OpenDS,srcds);if(rc!=TwRC.Success)return;TwCapabilitycap=newTwCapability(TwCap.XferCount,1);resx=cap.setResolution(TwCap.IXResolution,600);resy=cap.setResolution(TwCap.IYResolution,600);rc=DScap(appid,srcds,TwDG.Control,TwDAT.Capability,TwMSG.Set,cap);if(rc!=TwRC.Success||resx||resy){CloseSrc();return;}TwUserInterfaceguif=newTwUserInterface();guif.ShowUI=1;guif.ModalUI=1;guif.ParentHand=hwnd;rc=DSuserif(appid,srcds,TwDG.Control,TwDAT.UserInterface,TwMSG.EnableDS,guif);if(rc!=TwRC.Success){CloseSrc();return;}}//namespaceTwainLib

解决方案

解决方案二:
你好,朋友,你的这个问题解决了吗

时间: 2024-09-20 21:16:42

用c#编写自动控制扫描仪的dll,如何设置分辨率的相关文章

vc++-VC++如何调用C#编写的串口驱动 DLL

问题描述 VC++如何调用C#编写的串口驱动 DLL 最近弄一个串口打印的项目,我一直是用VC++进行开发的,c#没用过,但是对方提供的打印机的DEMO却是C#的例程,本来想着DLL是跨语言的,应该没什么问题,但是我用vc++编写了一个测试程序,确没有任何数据输出,很简单的例程,我按流程在上面加了打开串口,设置串口,发送数据,关闭串口.这几步都是用的现成的dll里面的函数,他把串口的数据操作也封装起来了,然后我就想到,在c#中是可以直接用库函数对串口读写,是不是因为这个原因,导致我在vc++中不

有关c# 调用vc++编写的非托管DLL、socket编程等相关知识的讲的比较详细的书籍

问题描述 有关c# 调用vc++编写的非托管DLL.socket编程等相关知识的讲的比较详细的书籍 学习c# 调用vc++编写的非托管DLL.socket编程等相关知识的讲的比较详细的书籍都有哪些?(最好是基于VS2008的) 解决方案 c#调用非托管C++生成的dllc# 调用 C++ 非托管 DllC#调用非托管dll 解决方案二: 这样一个知识点,最好是 Baidu/Google 查找来解决 书上的内容,没有网络上的丰富

如何在C#中加载自己编写的动态链接库(DLL)

动态|加载|链接 摘要 本文主要讲述如何在C#中逐步实现加载自己用C++语言编写的动态链接库,以及在导入时如何进行C#和C++语言的数据类型匹配 关键词 C# C++ 动态链接库 加载 数据类型匹配 一.发生的背景 在开发新项目中使用了新的语言开发C#和新的技术方案WEB Service,但是在新项目中,一些旧的模块需要继续使用,一般是采用C或C++或Delphi编写的,如何利用旧模块对于开发人员来说,有三种可用方法供选择:第一.将C或C++函数用C#彻底改写一遍,这样整个项目代码比较统一,维护

求大神指点vb.net怎么编写com组件的dll

问题描述 求大神指点我用vb.net编写的类库生成的dll却不是com组件是什么情况呀...大神们指点指点下呀.... 解决方案 解决方案二:参考:Walkthrough:CreatingCOMObjectswithVisualBasic解决方案三:呜呜,这参考资料看不懂呀,,,有没有实用点的呀,,,解决方案四:程序集信息>使程序集com可见

JNative调用dll参数设置问题

问题描述 在做java对sqlite加密过程中,选择了用JNative调用wxsqlite的sqlite3.dll来实现加密,其中用到了dll文件中的sqlite3_open,sqlite3_rekey,sqlite3_key,sqlite3.close函数.在C中,参数如下:intsqlite3_open(constchar*filename,/*Databasefilename(UTF-8)*/sqlite3**ppDb/*OUT:SQLitedbhandle*/)intsqlite3_re

C#调用dll参数设置的问题,求大神指点迷津!!!

问题描述 在做一个设备开发,现在遇到一些问题,对方提供的dll文件是c++编译的,我使用c#导入dll的函数,有一个函数有问题,调用时报异常,这个函数是关键函数,不知道哪里出错,求大神指点一下,不胜感激!函数原型如下:extern"C"__declspec(dllexport)CHD_RET_ECHD_WMP_Poll(INCHD_WMP_Thandle,OUTCHD_STREAM_TYPE_E*type,INCHD_U32timeout_sec,INCHD_U32timeout_ms

loadlibrary-g++ 怎么编写windows DLL 用LoadLibrary加载的哪种

问题描述 g++ 怎么编写windows DLL 用LoadLibrary加载的哪种 用gcc 可以编写windows dll 也可以用LoadLibrary和GetProcAddress进行DLL 中的函数调用.用G++ 编写的同样的DLL 可以编写通过,但是用LoadLibrary和GetProcAddress不能调用其中的函数. 解决方案 你看看dll的函数导出接口是什么? 看看是不是调用约定的问题. 解决方案二: 注意函数调用约定,函数名修饰 g++的修饰名不一样

Visual C#制做DLL

作为软件设计和开发人员大都有过使用DLL(动态连接库)的经历,DLL的产生使得我们的应用程序在可维护性.代码的重复使用等方面都有了很大的提高.以前用的DLL一般都是用Visual C++.Delphi或者VB等编程语言来编写的,这种DLL的编写和使用,我们大都已经比较习惯了.作为新一代的程序开发语言--Visual C#,到底是如何编写和使用DLL的呢!本文就试着就这方面的问题来进行简单的介绍. Visual C++.Delphi或者VB等编程语言来编写成的DLL文件,在编译完成过以后,产生DL

VC++的DLL应用(含Demo演示)

在大学大一的时候学的是C,然后后来大二的时候专业又开了C++这个课程,然后再后来自己又自学了一点VC++,大三的时候也试着编写过一个MFC的最简单的窗口程序.到大四的时候,自己又做了一个GIS的项目,是用C#.NET来编写的,然后发现C#上手好容易,而且还大部分语法规则都沿用了C,C++的习惯,于是觉得C++实在是没有一点优势可言啊.但这个暑假的实习经历又改变了我的观点:C++在写窗口程序虽然麻烦,但是却什么能做,而且对比C#来说,对运行环境的要求不高,不用像C#程序在安装之前还要安装100M多