hoounsoon
驱动牛犊
驱动牛犊
  • 注册日期2005-07-27
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望18点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
阅读:5064回复:9

有哪位大大会扫描仪WIA的,请帮帮我!

楼主#
更多 发布于:2007-04-05 10:37
  最近被WIA搞的一点脾气都没有了,用DDK中的例子修改的代码不好用。安装上了扫描仪,但是双击图标,提示设备没有连接,郁闷ing

最新喜欢:

wingmanwingma...
hoounsoon
驱动牛犊
驱动牛犊
  • 注册日期2005-07-27
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望18点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-04-06 10:06
没有人懂吗?
今天发现一个问题:
程序代码如下

STDMETHODIMP CWIADevice::Initialize(
                                          PSTIDEVICECONTROL   pIStiDevControl,
                                          DWORD               dwStiVersion,
                                          HKEY                hParametersKey)
{
    TCHAR data[]="Initialize!";
    WriteLog(data);
    CWiaLogProc WIAS_LOGPROC(m_pIWiaLog,
                             WIALOG_NO_RESOURCE_ID,
                             WIALOG_LEVEL3,
                             "CWIADevice::Initialize");
    WriteLog("11111111111");
    if (!pIStiDevControl) {
        WIAS_LERROR(m_pIWiaLog,WIALOG_NO_RESOURCE_ID,("CWIADevice::Initialize, invalid device control interface"));
        TCHAR data[]="pIStiDevControl!";
        WriteLog(data);
        return STIERR_INVALID_PARAM;
    }

    HRESULT hr = S_OK;

    //
    // Get the mode of the device to check why we were created.  status, data, or both...
    //
    WriteLog("22222222");
    DWORD dwMode = 0;
    hr = pIStiDevControl->GetMyDeviceOpenMode(&dwMode);
    if(FAILED(hr)){
        WIAS_LERROR(m_pIWiaLog,WIALOG_NO_RESOURCE_ID,("CWIADevice::Initialize, couldn't get device open mode"));
        TCHAR data[]="GetMyDeviceOpenMode!";
        WriteLog(data);
        return hr;
    }

    if(dwMode & STI_DEVICE_CREATE_DATA)
    {
        //
        // device is being opened for data
        //
    }

    if(dwMode & STI_DEVICE_CREATE_STATUS)
    {
        //
        // device is being opened for status
        //
    }

    if(dwMode & STI_DEVICE_CREATE_BOTH)
    {

    }

    WCHAR szDevicePortNameW[MAX_PATH];
    memset(szDevicePortNameW,0,sizeof(szDevicePortNameW));
    WriteLog("33333333");
    hr = pIStiDevControl->GetMyDevicePortName(szDevicePortNameW,sizeof(szDevicePortNameW)/sizeof(WCHAR));
    if(FAILED(hr)) {
        WIAS_LERROR(m_pIWiaLog,WIALOG_NO_RESOURCE_ID,("CWIADevice::Initialize, couldn't get device port"));
        TCHAR data[]="GetMyDevicePortName!";
        WriteLog(data);
        return hr;
    }
    WriteLog("4444444444");
    if(!m_OK732LLD->FindScannerEx("\\\\.\\Usbscan0"))
    {
        //MessageBox(NULL,"FindScannerEx",NULL,MB_OK);
        TCHAR data[]="FindScannerEx!";
        WriteLog(data);
        return E_FAIL;
    }
............................................
}
查看我写的记录,发现他运行到 WriteLog("4444444444"); 之后下面的代码他都没有运行就结束了。

FindScannerEx 是我自己定义的一个调用DLL的里面接口的函数。它里面也有写记录的程序,但是它根本就没有任何的记录留下。这是怎么回事?
hoounsoon
驱动牛犊
驱动牛犊
  • 注册日期2005-07-27
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望18点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-04-06 15:40
还是自己顶吧,

我把DDK中的例子改了一下,生成的dll文件,然后将它作为扫描仪的驱动安装到系统中,但是好像根本没有起作用,所用Minidriver中提供的接口实现的函数一个都没有执行。

刚接触WIA 方面的东西没有多久。一切都还在学习中,哪位老牛董这方面的东西,请帮帮我吧!!!!!!!!
十二万分的感谢。
hoounsoon
驱动牛犊
驱动牛犊
  • 注册日期2005-07-27
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望18点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-04-06 20:24
还是没有人来帮我。。。。。。

为什么DDK中的例子安装上后,它就自动的从CWiaDevice的构造函数开始执行,然后时IStiUSD的初始化函数等等,而将它修改后安装到扫描议上后却没有任何的反映,就年CWiaDevice的构造函数都不执行。

难道它与inf文件有关系吗?

哪inf文件应该怎样些呢?
wgq
wgq
驱动小牛
驱动小牛
  • 注册日期2001-07-23
  • 最后登录2013-12-09
  • 粉丝3
  • 关注0
  • 积分40分
  • 威望342点
  • 贡献值0点
  • 好评度97点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-04-08 10:37
我对WIA也感兴趣,不过项目还没要求,目前做的都是TWAIN的。
高手们提供些信息啊!
qq
hoounsoon
驱动牛犊
驱动牛犊
  • 注册日期2005-07-27
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望18点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-04-08 12:32
哎。。。。。。。。。。

看的人不少,却没有人能帮我一把。

在网上看到这样一段话:
Scanner在Win98和Win2000中属于STI Device,Windows系统中标准的STI Device会走STI或WIA架构来接入系统,在上层需要标准的Twain的DS来和图形图像应用程序来对接,当然也可以研发自己的Application架在STI或WIA的上面,非标准的USB STI Device需要额外的Bulk USB Driver来支持。STI和WIA的架构支持设备的PUSH BUTTON功能,使设备的操作更简便与快捷。

是不是说要做好一个WIA驱动,要先写好Twain的DS然后再在Twain的DS基础上开发WIA?

但是,我看到Twain_32文件夹下有一个wiatwain.ds文件。是不是说系统已经给我们写好的这个DS文件,我们只需要些USD这一部分就好了。

还有DDK中介绍说WIA Minidriver都是和Wia Service打交道的,而WIA Service是系统提供的一个服务。我们开发的WIA Minidriver 只是需要将WIA Minidriver提供的接口实现了,系统就会自动的去调用那些我们写好的接口函数。

如果真的是这样,那么我写的WIA Minidriver安装到打印机上,他连初始化都不运行,这是为什么呢?

还望各位大侠们给我帮助。

等待各位大侠的好消息。。。。。。
hoounsoon
驱动牛犊
驱动牛犊
  • 注册日期2005-07-27
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望18点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-04-10 10:41
呵呵。。。

已经可以在机器上运行了,现在就差一些细节的东西了。

可以通过写文件调试了,我想剩下的应该不会太难了吧。
hoounsoon
驱动牛犊
驱动牛犊
  • 注册日期2005-07-27
  • 最后登录2009-07-02
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望18点
  • 贡献值0点
  • 好评度16点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-05-10 13:59
已经解决了扫描的问题,现在出现的问题是无法通过扫描仪发出扫描的指令,然后在PC上弹出设置好的程序,如

果哪位大侠知道一些这方面的知识,请指教小弟一二。

小弟将感激不禁。

谢谢!

谢谢!
snbc_geng
驱动牛犊
驱动牛犊
  • 注册日期2006-08-28
  • 最后登录2013-07-11
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望55点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-06-14 11:27
不好意思,我刚开始看WIA 驱动,你说的问题我解决不了, 想问你一个问题,CWiaLogProc WIAS_LOGPROC应该是输出的调试信息吧,说是写到wiaservc.log文件中,我怎么看不到 。   你用的 WriteLog("11111111111");函数是自己写的吗?谢谢
jbhlzw
驱动牛犊
驱动牛犊
  • 注册日期2006-04-03
  • 最后登录2010-09-29
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望93点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-06-24 10:57
看看twaince标准接口的一些东西,在应用和驱动之间的动态库中自己必须添加调用自己驱动的代码,如果不这样数据根本无法到达设备.
游客

返回顶部