湖南电信登陆验证码,识别率99%,使用VC调用

typedef int (* TypeInitKeyCode)();
typedef int (* TypeFreeKeyCode)(int idx);
typedef int (* TypeGetCodeResult)(char *filename,char *outBuffer,int idx);
TypeInitKeyCode InitKeyCode;
TypeFreeKeyCode FreeKeyCode;
TypeGetCodeResult GetCodeResult;
// CVCDemo_DLLDlg 消息处理程序
BOOL CVCDemo_DLLDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
HINSTANCE hInst = LoadLibraryA("www.zfuwen.com.KeyCodeDll.dll");//载入www.zfuwen.com.KeyCodeDll.dll
if (!hInst)
{
MessageBox(_T("无法加载www.zfuwen.com.KeyCodeDll.dll,请检查路径是否正确!"));
return 0;
}
InitKeyCode = (TypeInitKeyCode)GetProcAddress(hInst, "www_zfuwen_com_QQ_251578917_InitKeyCode");
FreeKeyCode = (TypeFreeKeyCode)GetProcAddress(hInst, "www_zfuwen_com_QQ_251578917_FreeKeyCode");
GetCodeResult = (TypeGetCodeResult)GetProcAddress(hInst, "www_zfuwen_com_QQ_251578917_GetCodeResult");
m_KeyIdx=InitKeyCode();
SetDlgItemText(IDC_INPUTFILE,_T("c:\\1.bmp"));
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
void CVCDemo_DLLDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
void CVCDemo_DLLDlg::OnBnClickedTest()
{
if(m_KeyIdx>=0)
{
CString filename;
GetDlgItemText(IDC_INPUTFILE,filename);
DWORD nStartTick=::GetTickCount();
char outBuffer[100];
memset(outBuffer,0,100);
_bstr_t item=_bstr_t(filename);
int retCount=GetCodeResult((char *)item,outBuffer,m_KeyIdx);
DWORD nEndTick=::GetTickCount();
CString showMsg;
_bstr_t CodeText="";
CodeText=CodeText+"识别结果:"+outBuffer;
showMsg.Format(_T(",时间:%d,当前时间:%d"),nEndTick-nStartTick,nEndTick);
CodeText=CodeText+showMsg;
//MessageBox(res,"识别结果");
SetDlgItemText(IDC_RESCODE,CodeText);
}
}
(责任编辑:文得莉工作室) |