资源简介

亦思验证码C++调用封装库,支持网络图片,本地图片,内存图片的识别。在官方的dll实例中只有VB、delp、易语言的例子,没有VC的,今天刚好用到,简单封装了下,分享下,讨论下:QQ:103.626,571 //////////////////调用示例////////////////////// int item = 3; cVcode::init("all.fc", "123456"); //网络地址验证码 CString code = cVcode::getNetCode("http://www.xxx.net/UsreAdmin/HouseMgr/validatecode.asp", item); wcout<<code.GetString()<<endl; //本地验证码 CString code2 = cVcode::getLocalCode("c:/yfwcode.bmp", item); wcout<<code2.GetString()<<endl; //内存中的验证码 HttpLib lib; CMemFile file; lib.getFile("http://www.xxx.net/UsreAdmin/HouseMgr/validatecode.asp", &file); CString code3 = cVcode::getMemCode(file, item); wcout<<code3.GetString()<<endl;

资源截图

代码片段和文件信息

#include “StdAfx.h“
#include “cVcode.h“

using namespace std;

void cVcode::exit()
{
isInit = FALSE;
FreeLibrary(hdll);
}

BOOL cVcode::init( char * libPath char * pwd )
{
try{
hdll = LoadLibrary(L“ycode.dll“);
loadcode = (lpLoadCode)GetProcAddress(hdll “loadcode“);
recognition = (lpRecognition)GetProcAddress(hdll “Recognitiond“);

//加载验证码库
loadcode(00libPathpwd);
isInit = TRUE;
return TRUE;
}catch(exception &e){
cout<<“Exception:“< return FALSE;
}
}

CString cVcode::getNetCode( CString &picUrl int &itemId )
{
if (!isInit) return ““;
USES_CONVERSION;
char * _picUrl = T2A(picUrl);
try{
char * code = recognition(itemId 0 0 _picUrl ““);
CString rst;
rst.Format(L“%s“ A2T(code));
return rst;
}catch(exception &e){
cout<<“Exception:“< return ““;
}

}

CString cVcode::getLocalCode( CString &picPath int &itemId )
{
if (!isInit) return ““;
USES_CONVERSION;
char * _picPath = T2A(picPath);
try{
char * code = recognition(itemId 0 0 ““ _picPath);
CString rst;
rst.Format(L“%s“ A2T(code));
return rst;
}catch(exception &e){
cout<<“Exception:“< return ““;
}
}

CString cVcode::getMemCode( CMemFile &file int &itemId )
{
if (!isInit) return ““;
USES_CONVERSION;
try{
int dataLen = file.GetLength();
byte * dataByte = new byte[dataLen];
file.SeekToBegin();
file.Read(dataByte dataLen);

char * code = recognition(itemId (long)dataByte dataLen ““ ““);

delete [] dataByte;
CString rst;
rst.Format(L“%s“ A2T(code));
return rst;
}catch(exception &e){
cout<<“Exception:“< return ““;
}
}

lpRecognition cVcode::recognition = NULL;

lpLoadCode cVcode::loadcode = NULL;

HINSTANCE cVcode::hdll = NULL;

BOOL cVcode::isInit = FALSE;

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1373  2011-01-21 18:50  cVcode.h

     文件       1893  2011-01-21 18:39  cVcode.cpp

     文件        595  2011-01-21 18:58  使用例子.txt

----------- ---------  ---------- -----  ----

                 3861                    3


评论

共有 条评论