随笔-80  评论-117  文章-0  trackbacks-0
最近在搞一套OCR的程序,底层的OCR引擎是购买来,外面用VB包装了一层。这套程序已经在其他地方的项目中使用过的。花了点时间把VB程序改造了下,在本机调试通过,准备部署到实际的服务器上。部署之后一运行,从log中发现没有识别成功。怀疑是ocr引擎的问题,先用引擎自带的demo程序测试下,一识别报找不到DLL的错误,查看了下该dll,发现的却是在当前目录有这个dll,用其他语言写的demo也一样报错。

 查了下OCR SDK的开发手册,手册中到是提到了这个问题,给出的解决方案是把DLL和exe都放在同一个目录下,二我当前就是这么做的。奇怪的,再测copy了DLL测试DLL本身并无损坏。把DLL都copy到system32下面也一样无济于事。把当然的路径加到系统的path里面,也无效。怪事了,某非设置path要重启之后才能生效。还好现在是下班时间,把服务器重新启动了下。

重启之后立刻弹出N个对话框,ocr.exe因为遇到问题被系统数据执行保护关闭。TNN的原来是数据保护惹的祸。到数据保护里设置为只为系统进程和服务启用,再次重启果然解决问题了。这让我想起以前在安装一些InstallAnywhere打包的程序时也会遇到问题就好似数据执行保护引起的。

把程序开起来进行识别,确发现识别数量一多就会报某某内存地址不能read的错误。kao,真是一bug刚灭一bug又起啊。调了半天也没有结果,算了先回去睡觉,明天再解决。
  第二天,也就是今天 呵呵,在msn向一个同事(VB高手)请教,他也说可能是数据执行保护的问题。我又查看了下程序的日志,突然来了灵感,发现出错的有规律,有的错误是在识别同一份文件时发生的,查了下原来这份图片是png格式的,测试了下果然是png不能识别。问题解决,特写本篇blog记录下。
posted on 2007-07-28 12:21 南哥 阅读(665) 评论(0)  编辑  收藏 所属分类: 项目经验

只有注册用户登录后才能发表评论。


网站导航: