大家好:
我编译了一个基于TWAIN标准支持扫描仪的DLL,使用静态链接MFC方式编译。到目前为止,大部分扫描仪能够支持,前两天发现不能正常操作紫光B600+,修改程序后,能在VC里面使用CTRL+F5正常操作扫描仪(紫光B600+)了,但是直接在应用程序可执行文件不能正常操作,通过输出日志发现,程序卡在了DLL释放扫描仪的时候,表现形式为CPU占用90+,此接口函数也没有任何返回。之后我尝试把执行文件整个目录安装在另外两台机器(两台操作系统都是WIN XP SP3,但是有一台是克隆版本)上,其中一台能正常运行,另外一台(克隆版本操作系统)与我本机表现形式一样,望大家帮助解决,3Q。
我编译了一个基于TWAIN标准支持扫描仪的DLL,使用静态链接MFC方式编译。到目前为止,大部分扫描仪能够支持,前两天发现不能正常操作紫光B600+,修改程序后,能在VC里面使用CTRL+F5正常操作扫描仪(紫光B600+)了,但是直接在应用程序可执行文件不能正常操作,通过输出日志发现,程序卡在了DLL释放扫描仪的时候,表现形式为CPU占用90+,此接口函数也没有任何返回。之后我尝试把执行文件整个目录安装在另外两台机器(两台操作系统都是WIN XP SP3,但是有一台是克隆版本)上,其中一台能正常运行,另外一台(克隆版本操作系统)与我本机表现形式一样,望大家帮助解决,3Q。
NULL,
DG_CONTROL,
DAT_IDENTITY,
MSG_CLOSEDS,
&dsID); //就是这个地方释放扫描资源
TW_UINT16 CTWAIN::CallDSMEntry(pTW_IDENTITY pApp, pTW_IDENTITY pSrc, TW_UINT32 DG, TW_UINT16 DAT, TW_UINT16 MSG, TW_MEMREF pData)
{ TW_UINT16 twRC = (*this->pDSMEntryProc)(pApp, pSrc, DG, DAT, MSG, pData);//卡住,CPU占用90%+
return twRC;
}
W_UINT16 twRC = (*this->pDSMEntryProc)(pApp, pSrc, DG, DAT, MSG, pData);//卡住,CPU占用90% 处设置断点跟踪进去看看
:我前面说明了 在VC下面DUBUG是正常的,能正常调用