2个VC函数, 谁帮写个VB的函数调用声明

验证码识别 2010-10-03 08:26:35

//函数功能:识别验证码图片
//参数:[in] imagebuf: 图片内存文件数据
// [in] size: imagebuf大小
// [out] text:识别结果
//返回:0:正常识别;-1:异常,如文件不存在等
TESSDLL_API int __stdcall GetTessTextByBuf(const unsigned char *imagebuf,
int size, int type, char *text);

//函数功能:识别验证码图片
//参数:[in] imagefile:图片路径
// [out] text:识别结果
//返回:0:正常识别;-1:异常,如文件不存在等
TESSDLL_API int __stdcall GetTessText(const char *imagefile, char *text);


不知道VB的参数该用什么类型, 谁帮帮忙
...全文
82 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunlin7 2010-10-04
  • 打赏
  • 举报
回复
TESSDLL_API int __stdcall GetTessText(const char *imagefile, char *text);
这个函数需要用一个函数包装器包装成
TESSDLL_API int __stdcall GetTessText(const wchar_t *imagefile, wchar_t *text);
然后用VB来调用之。

或者在VB将String转成ansi,再调用原来dll中的函数。
sunlin7 2010-10-04
  • 打赏
  • 举报
回复
VB调用VC的DLL,传递字符串的时候,需要使用BST(wchar_t).
验证码识别 2010-10-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 coding_hello 的回复:]
Public Declare Function GetTessTextByBuf Lib "xxx.dll" (ByVal imagebuf As String, ByVal size As Long, ByVal type As Long, ByRef text As String) As Long

Public Declare Function GetTessText Lib "xx……
[/Quote]


Dim text As String
Dim imagefile As String
imagefile = "D:\WorkSpace\MyOCR\VBTest\QQ\2.bmp"
Dim ncode
Dim result
result = GetTessText(imagefile, text)
Text1.text = text


如上, VB程序崩溃, 我进入VC调试状态, 错误出来在 GetTessText函数调用结束后

谁知道原因?
野男孩 2010-10-03
  • 打赏
  • 举报
回复
Public Declare Function GetTessTextByBuf Lib "xxx.dll" (ByVal imagebuf As String, ByVal size As Long, ByVal type As Long, ByRef text As String) As Long


Public Declare Function GetTessText Lib "xxx.dll" (ByVal imagefile As String, ByRef text As String) As Long

其中xxx.dll就是你提供这两个函数的动态库的名称

不清楚你那个imagebuf参数是否是0结束的字符串,还是任意二进制数据。如果是字符串,就上面那样就可以了。如果是二进制数据,那么imagebuf要看成是byte数组,可以把ByVal imagebuf As String改为ByRef imagebuf As Integer

lz可以看看这篇文章
http://www.doc88.com/p-5750218688.html
arong1234 2010-10-03
  • 打赏
  • 举报
回复
只有搞vb的菜需要这种跨语言调用声明吧,所以不一样[Quote=引用 2 楼 yzm888 的回复:]
引用 1 楼 tiger9991 的回复:
楼主为啥不去VB专区发帖?


一样的啊, 能搞的VC VB都懂的
[/Quote]
验证码识别 2010-10-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tiger9991 的回复:]
楼主为啥不去VB专区发帖?
[/Quote]

一样的啊, 能搞的VC VB都懂的
傻X 2010-10-03
  • 打赏
  • 举报
回复
楼主为啥不去VB专区发帖?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧