http://down.cnzz.cn/info/30197.aspx
这上面是一个验证码识别的引擎,提供了DLL,但我下载打开demo,例子程序运行失败
我自己用vc6调用DLL
HMODULE hmydll=::LoadLibrary("OCR.DLL");
MYDLLFUN *mydllfun;
lpformCodeImg OCRForumCodeImg = (lpformCodeImg)GetProcAddress(hmydll,"OCRForumCodeImg");
lpCreateEngine CreateEngine = (lpCreateEngine)GetProcAddress(hmydll,"CreateEngine");
lpCreateEngine FreeEngine = (lpFreeEngine)GetProcAddress(hmydll,"FreeEngine");
if(OCRForumCodeImg != NULL && CreateEngine != NULL && FreeEngine != NULL)
{
void* h;char* code = "";int time;
CreateEngine(&h);byte m = -1;
if(OCRForumCodeImg(h,m,"","5.bmp",&code,time))
AfxMessageBox(*code);
FreeEngine(&h);
}
::FreeLibrary(hmydll);
其中OCRForumCodeImg(h,m,"","5.bmp",&code,time)函数中,只要第三个参数不设置为"",那么程序运行就一定会崩溃
我跟踪到dll源代码里发现过程procedure TOCRengine.RecogForumCodeImg中有 if (_PicFile <>'')and(_CodeUrl <>'')and(_BbsType <>0) then
再往下跟踪,也没发现什么可疑之处,但肯定是在判断后面出了问题,希望高手帮我看看
不是我非要用这个算法,网上实在找不到不要钱的了,我又完全不会用delphi,希望高手们指点指点.
这上面是一个验证码识别的引擎,提供了DLL,但我下载打开demo,例子程序运行失败
我自己用vc6调用DLL
HMODULE hmydll=::LoadLibrary("OCR.DLL");
MYDLLFUN *mydllfun;
lpformCodeImg OCRForumCodeImg = (lpformCodeImg)GetProcAddress(hmydll,"OCRForumCodeImg");
lpCreateEngine CreateEngine = (lpCreateEngine)GetProcAddress(hmydll,"CreateEngine");
lpCreateEngine FreeEngine = (lpFreeEngine)GetProcAddress(hmydll,"FreeEngine");
if(OCRForumCodeImg != NULL && CreateEngine != NULL && FreeEngine != NULL)
{
void* h;char* code = "";int time;
CreateEngine(&h);byte m = -1;
if(OCRForumCodeImg(h,m,"","5.bmp",&code,time))
AfxMessageBox(*code);
FreeEngine(&h);
}
::FreeLibrary(hmydll);
其中OCRForumCodeImg(h,m,"","5.bmp",&code,time)函数中,只要第三个参数不设置为"",那么程序运行就一定会崩溃
我跟踪到dll源代码里发现过程procedure TOCRengine.RecogForumCodeImg中有 if (_PicFile <>'')and(_CodeUrl <>'')and(_BbsType <>0) then
再往下跟踪,也没发现什么可疑之处,但肯定是在判断后面出了问题,希望高手帮我看看
不是我非要用这个算法,网上实在找不到不要钱的了,我又完全不会用delphi,希望高手们指点指点.
解决方案 »
- 权限设置问题具体到每个form的toolbutton?
- 如果让你从新开发C/S系统(类似ERP这样的管理系统),您会选择什么开发语言?
- 紧急求救:(在线等)
- 安装ehlibv3.3 出错
- 用TAPIline控件编写通过modem通讯的程序,不能发送数据,各位帮帮忙.
- socket 问题,怎么实现通过socket 不用握手协议,判断数据已经发送成功??
- 遇到难题了!高手请进!
- 如何在程序关闭EXCEL时,没有保存提示?y/n
- 请教cobi(我是小新,我只有5岁),关于InstallShield Express For Delphi 5
- 如何怎样屏蔽掉DBGrid向下方向键的自动Append功能,而其它功能不变(AutoEdit不能为False)?
- 小弟,请教如何把 DBGrid 中的数据倒入到EXCEL 中
- 如何在程序做定时删除数据表里的数据
第三个参数是URl不允许为空,但是你传的是空。
m没注意看,我看两个例子里都用的是-1我也就跟着用了
反正我是打算自己发包申请到图片然后下载到本地,再调用这个库进行识别的,没想过用它的网络功能
第三个URL根据例子,我猜测可能是验证码所在网页图片地址,反正我也用不着
现在问题是:只要这个参数不为空,哪怕为" "程序运行也会崩溃,说明肯定有问题,但问题在哪就不知道了
如果这个参数为空,程序执行正常,但什么也识别不出来,没有返回结果。
5.bmp是我放在VC工程里的测试图片,应该是不需要另外加路径了
关键是后面哪里有问题,我看了遍,好像后面链接地址变量都没什么问题,除非整个DLL存在结构性问题。
现在就想问问大家哪里可能存在问题
------------------------------------------------
不是这个原因啦,如果说是我传的参数不能为" ",那么我传递一个正常的HTTP的URL也异常啊.
而且我看VB的DEMO里也是传递了一个正常的URL,程序同样异常挂掉.
delphi的DEOMO倒是没有挂掉,不过我也执行不出什么结果来.
我估计有可能DLL设计过程中本来就有缺陷或问题