资源简介
用c++编写的获取验证码的程序,验证码是通过bmp位图来获取的 含源程序及bmp图片
代码片段和文件信息
HGLOBAL WINAPI MergeDIB(LPSTR lpDIB1LPSTR lpDib2)
{
long lWidth1;
long lHeight1;
long lWidth2;
long lHeight2;
long lNewWidth;
long lNewHeight;
long lNewLineBytes;
LPSTR lpDIBBits1;
LPSTR lpDIBBits2;
LPSTR lpSrc;
HDIB hDIB;
LPSTR lpDst;
LPSTR lpNewDIB;
LPSTR lpNewDIBBits;
LPBITMAPINFIHEADER lpbmi;
LPBITMAPINFIHEADER lpbmc;
long i;
long j;
long i0_1;
long j0_1;
long i0_2;
long j0_2;
long lLineBytes1;
long lLineBytes2;
lpDIBBits1=::FindDIBBits(lpDIB1);
lpDIBBits2=::FindDIBBits(lpDIB2);
lWidth1=::DIBWidth(lpDIB1);
lWidth2=::DIBWidth(lpDIB2);
lLineBytes1=WIDTHBYTES(lWidth1*8);
lLineBytes2=WIDTHBYTES(lWidth2*8);
lHeight1=::DIBHeight(lpDIB1);
lHeight2=::DIBHeight(lpDIB2);
lNewWidth=(long)(::DIBWidth(lpDIB1)+::DIBWidth(lpDIB2));
lNewLineBytes=WIDTHBYTES(lNewWidth*8);
if(lHeight>lHeight2)
{
lNewHeight=(long)(lHeight1);
}
else{
lNewHeight=(long)(lHeight2);
}
hDIB=(HDIB)::GlobalAlloc(GHNDlNewLineBytes*lNewHeight+
*(LPDWORD)lpDIB1+::PaletteSize(lpDIB1));
if(hDIB==NULL)
{
return NULL;
}
lpNewDIB=(char*)::GlobalLock((HGLOBAL)hDIB);
memcpy(lpNewDIBlpDIB1*(LPDWORD)lpDIB1+::PaletteSize(lpDIB1));
lpNewDIBBits=::FindDIBBits(lpNewDIB);
lpbmi=(LPITMAPINFOHEADER)lpNewDIB;
lpbmc=(LPITMAPINFOHEADER)lpNewDIB;
if(IS_WIN30_DIB(lpNewDIB))
{
lpbmi->biWidth=lNewWidth;
lpbmc->biHeight=lNewHeight;
}
else
{
lpbmc->bcWidth=(unsigned short)lNewWidth;
lpbmc->bcHeight=(unsigned short)lNewHeight;
}
for(i=0;i {
for(j=0;j {
lpDst=(char*)lpNewDIBBits+lNewLineBytes*(lNewHeight-1-i)+j;
if(j {
i0_1=(long)(i);
j0_1=(long)(j);
if((j0_1>=0)&&j0_1=0)&&(i0_1 {
lpSrc=(char*)lpDIBBits1+lLineBytes1*(lHeight-1-i0_1)+j0_1;
*lpDst=*lpSrc;
}
else
{
*((unsigned char*)lpDst)=255;
}
}
else
{
i0_2=(long)(i);
j0_2=(long)(j-lWidth1);
if((j0_2>=0)&&(j0_2=0)&&(i0_2 {
lpSrc=(char*)lpDIBBits2+lLineBytes2*(lHeight2-1-i0_2)+j0_2;
*lpDst=*lpSrc;
}
else
{
*((unsigned char*)lpDst)=255;
}
}
}
}
return hDIB;
}
HDIB WINAPI LoadDIBFromResource(CString cImage)
{
//获取实例句柄
HINSTANCE hInst=AfxGetInstanceHandle();
//装入资源
HRSRC hRes=FindResource(hInstcImage“BINARY“);
if(hRes==NULL)
return NULL;
HGLOBAL hGlob;
CMemFile file;
DWORD dwResSize=SizeofResource(hInsthRes);
file.Attach(LPBYTE)LockResource(hGlob=LoadResource(hInsthRes))dwResSize);
HDIB hDIB=::ReadDIBFile(file);
file.Detach();
Deleteobject(hGlob);
return hDIB;
}
BOOL WINAPI HDIB2BByteArray(HDIB hDibCByteArray* pByteArray)
{
BITMAPFILEHEADER bmfHdr;
LPBITMAPINFOHEADER lpBI;
DWORD dwDIBSize;
if(hDib==NULL)
{
return false;
}
lpBI=(LPBITMAPINFOHEADER)::GlobalLock((HGLOBAL)hDib);
if(lpBI==NULL)
{
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2010-01-18 23:52 200731500212 陈彬 计科7班 c++\
文件 297984 2010-01-18 23:52 200731500212 陈彬 计科7班 c++\C++.doc
目录 0 2010-01-13 19:55 200731500212 陈彬 计科7班 c++\ImaConfirmCode\
文件 3382 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\0.bmp
文件 4066 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\1.bmp
文件 6118 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\2.bmp
文件 5894 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\3.bmp
文件 6790 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\4.bmp
文件 6238 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\5.bmp
文件 6178 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\6.bmp
文件 6118 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\7.bmp
文件 6238 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\8.bmp
文件 6178 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\9.bmp
文件 4066 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\bin00001.bin
文件 3382 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\binary1.bin
文件 6118 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\binary2.bin
文件 5894 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\binary3.bin
文件 6790 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\binary4.bin
文件 6238 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\binary5.bin
文件 6178 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\binary6.bin
文件 6118 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\binary7.bin
文件 6238 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\binary8.bin
文件 6178 2010-01-11 13:25 200731500212 陈彬 计科7班 c++\ImaConfirmCode\binary9.bin
目录 0 2010-01-13 19:45 200731500212 陈彬 计科7班 c++\ImaConfirmCode\Debug\
文件 352 2010-01-12 00:31 200731500212 陈彬 计科7班 c++\ImaConfirmCode\Debug\1.txt
文件 286 2010-01-12 00:39 200731500212 陈彬 计科7班 c++\ImaConfirmCode\Debug\2.txt
文件 655 2010-01-12 00:50 200731500212 陈彬 计科7班 c++\ImaConfirmCode\Debug\3.txt
文件 57 2010-01-13 19:40 200731500212 陈彬 计科7班 c++\ImaConfirmCode\Debug\4.asp
文件 76 2010-01-13 19:43 200731500212 陈彬 计科7班 c++\ImaConfirmCode\Debug\4.html
文件 57 2010-01-13 19:40 200731500212 陈彬 计科7班 c++\ImaConfirmCode\Debug\4.txt
文件 72 2010-01-13 19:45 200731500212 陈彬 计科7班 c++\ImaConfirmCode\Debug\5.html
............此处省略22个文件信息
相关资源
- C++ 直接硬盘访问读取 程序和源代码
- 水库优化调度程序源代码
- 多目标车辆路径优化源代码
- vc++6.0 mfc 关于播放.AVI格式的文件源代
- 并查集的C++实现,并查集的建立,合
- 校园导游图(C++)
- 课程设计报告+源码--计算器(C++)
- m×n的长方阵迷宫问题完美求解
- C++串口类 RS232
- c++教师排课程序
- C++获取网络时间
- C++ADO连接SQLServer封装类
- 幂法与反幂法 C++程序
- c++软件实习开发报告
- HDLC协议概述及c++实现
- C++自动生成等高线源程序
- c++简单线程池的实现
- Visual C++实现的FFT变换
- 数据结构课程设计公交线路优化查询
- vc++注册表文件关联,图标关联
- c++实现生产者消费者问题
- C#与C++进程间通信
- C++实验5代码5
- C++实验4代码4.3
- 清华大学C++ 郑莉老师教学视频 45集
- advapi32.lib77067
- 网络爬虫 C++ 代码
- 网关模板 C/C++程序编写
- 数据挖掘中的Apriori算法(C语言版)源
- 一个基于C++和mssql的本科生信息管理系
评论
共有 条评论