加密与解密 基础篇1

1加密与解密  是看雪中各大高手混编而成的  第三版


2,多字节存储顺序

intel是小端存储,像12345678h存入1000h开始的地址中时候,

1000h存78

1001h存56

....

...

1003h存12

高位字节存入高地址,低位字节存入低地止

3,ascll码是unicode的一部分

4,

Windows操作系统

1 Win API windows应用程序接口

2,

3,动态链接库DLL文件

DLL文件本身的结构就是可执行文件(PE,当程序需要调用函数时候才进行连接

4,什么是windows MFC

MFC也没什么,只是使用了C++类对Win32 API进行了封装,从而一方面屏蔽了Windows编程的复杂性,另一方面,仍然允许我们使用Windows底层功能开发高效的Windows应用程序。

5,window api是装汽车,windows MFC是开汽车

6,

常用的win32   API函数:

 GetWindowText函数 :函数功能:该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。如果指定的窗口是一个控制,则拷贝控制的文本。但是,GetWindowTeXt不能接收在其他应用程序中的控制文本。

    函数原型:Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);

    参数:

    hWnd:带文本的窗口或控制的句柄。

    IpString:指向接收文本的缓冲区的指针。

    nMaxCount:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断。

    返回值:如果函数成功,返回值是拷贝的字符串的字符个数,不包括中断的空字符;如果窗口无标题栏或文本,或标题栏为空,或窗口或控制的句柄无效,则返回值为零。若想获得更多错误信息,请调用GetLastError函数。

    函数不能返回在其他应用程序中的编辑控制的文本。

    备注:如果目标窗口属于当前进程,GetWindowText函数给指定的窗口或控制发送WM_GETTEXT消息。如果目标窗口属于其他进程,并且有一个窗口标题,则GetWindowTeXt返回窗口的标题文本,如果窗口无标题,则函数返回空字符串。

    速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows CE:1.0以上版本;头文件:Winuser.h;库文件:user32.lib:Unicode:在Windows NT上实现为Unicode和ANSI两种版本。

 

 

 

 

 

 HWND GetDlgItem 函数:

函数功能:该函数检索指定的对话框中的控制句柄。

    函数原型:HWND GetDlgltem(HWND hDlg,int nlDDlgltem);

    参数:

    hDlg:标识含有控制的对话框。

    nlDDlgltem:指定将被检索的控制标识符。

    返回值:如果函数调用成功则返回值为给定控制的窗口句柄。如果函数调用失败,则返回值为NULL,表示为一个无效的对话框句柄或一个不存在的控制。若想获得更多错误信息,请调用GetLastError函数。

    备注:可以通过使用任何父子窗口对来使用GetDlgltem函数,而不仅只是对话框。只要hDlg参数指定一个父窗口,且子窗口有一个独立的标识符(象CreateWindow中hMenu参数指定的或创建子窗口的CreateWindowEx指定的那样),GetDlgltem就会返回一个有效的句柄到子窗口。Windows CE:GetDlgltem函数只为对话框中的直接于控制工作,它不通过嵌套的对话框来搜寻。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。

 

 

 

 UINT GetDlgItemText函数: 函数功能:该函数获取对话框中与控制有关的文本或标题。

    函数原型:UINT GetDlgltemText(HWND hDlg,int nlDDlltem,LPTSTR IpString int nMazCount);

    参数:

    hDlg:指向含有控制的对话框的句柄。

    nlDDlgltem:指定标题或文本将被检索的控制的标识符。

    IpString:指向获取标题或文本的缓冲器的指针。

    nMaxCount:指定被复制到lpString参数指向的缓冲区的字符串的最大长度。如果字符串的字符最大长度超过范围,则该字符串被截断。

    返回值:如果函数调用成功,则返回值表示被复制缓冲区的字符串的长度,不包括以NULL结尾的字符串。如果函数调用失败,则返回值为零。若想获得更多错误信息,请调用GetLastError函数。

    备注: GetDlgltemText函数把一个WM_GETTEXT消息发送到控制。

    速查:Windows NT: 3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本:头文件:winuser.h;库文件:user32.lib;Unicode:在Windows NT上实现为Unicode和ANSI两种版本。

 

 

 

 UINT GetDlgItemInt函数: 函数功能:该函数把对话框中指定控制的文本转变为一个整型值。

    函数原型:UINT GetDlgltemlnt(HWND hDlg,int nlDDlgltem,BOOL ★IpTranslated,BOOL bSigned);

    参数:

    hDlg:指向含有利益控制的对话框的句柄。

    nlDDlgltem:指定文本将被转变的控制的对话项目标识符。

    IpTranslated:指向一个Boolean变量的指针。该变量保存函数成功/失败的值。TRUE表示成功,FALSE表示失败。此参数为可选的。它可以为NULL。在这种情况下,函数不返回关于成功和失败的信息。

    bSigned:指定函数足否在开始时为一个最小的消息检测文本,且如果发现一个消息整型值,则返回它。TRUE指定应该这样做,FALSE指定不应该这样做。

    返回值:如果函数调用成功则由IPTranslated指向的变量被设置为TRUE,且返回值为控制文本的转变值。

    如果函数调用失败则由IPTranslated指向的变量被设置为FALSE,且返回值为零。注意因为零为一个可能转变的值,返回的零值不能通过它自身来表示失败。如果IpTranslated为NuLL,则表示函数没有返回关于成功和失败的信息。如果bSigned参数为TRUE,指定将被检取的值为一个符号整型值,则把返回值设置为一个整型类型。有关详细的错误信息,请调用GetLastError。

    备注:GetDlgltemlnt函数通过发送WM_GETTEXT控制消息来检索给定控制的文本。函数通过去除任何一个文本开头的额外空间来转变要检索的文本,然后转换为数值数据。当函数达到文本的末尾或遇到一个非数值的字符时,则函数停止转变。 如果bSigned参数为TRUE,则GetDlgltemlnt函数检测文本开头的符号"C且把文本转变为符号整型数值。否则,函数创建一个非符号整型数值。如果转变的值大于IN_TMAX(对于有符号数)或UINT_MAX(对于无符号数),则GetDlgltemlnt函数返回零值。Windows CE:对于大于48个字符的文本字符串不能被转变。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本:头文件:Winuser.h;库文件:

 

 

 

 Int  MessageBox:

函数功能:该函数创建、显示、和操作一个消息框。消息框含有应用程序定义的消息和标题,加上预定义图标与Push(下按)按钮的任何组合。

    函数原型:int MessageBox(HWND hWnd,LPCTSTR IpCaption,UINT UType);

    参数:

    hWnd:标识将被创建的消息框的拥有窗口。如果此参数为NULL,则消息框没有拥有窗口。

    IpText:指向一个以NULL结尾的、含有将被显示的消息的字符串的指针。

    IpCaption:指向一个以NULL结尾的、用于对话框标题的字符串的指针。

    uType:指定一个决定对话框的内容和行为的位标志集。此参数可以为下列标志组中标志的组合。

    指定下列标志中的一个来显示消息框中的按钮,标志的含义如下。

    MB_ABORTRETRYIGNORE:消息框含有三个按钮:Abort,Retry和Ignore。

    MB_OK:消息框含有一个按钮:OK。这是缺省值。

    MB_OKCANCEL:消息框含有两个按钮:OK和Cancel。

    MB_RETRYCANCEL:消息框含有两个按钮:Retry和Cancel。

    MB_YESNO:消息框含有两个按钮:Yes和No。

    MB_YESNOCANCEL:消息框含有三个按钮:Yes,No和Cancel。

    指定下列标志中的一个来显示消息框中的图标:标志的含义如下。

    MB_ICONEXCLAMATION:

    MB_ICONWARNING:一个惊叹号出现在消息框。

    MB_ICONINFORMATION:

    MB_ICONASTERISK:一个圆圈中小写字母i组成的图标出现在消息框。

    MB_ICONOUESTION:一个问题标记图标出现在消息框。

    MB_ICONSTOP:

    MB_ICONERROR:

    MM_ICONHAND:一个停止消息图标出现在消息框。

    指定下列标志中的一个来显不缺省的按钮:标志的含义如下。

    MB_DEFBUTTON1:第一个按钮为缺省按钮。如果MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4没有被指定,则MB_DEFBUTTON1为缺省值。

    MB_DEFSUTTON2;第二个按钮为缺省按钮。

    MB_DEFBUTTON3:第三个按钮为缺省按钮。

    MB_DEFBUTTON4:第四个按钮为缺省按钮。

    指定下列标志中的一个来显示对话框的形态:标志的含义如卜。

    MB_APPLMODAL:在hwnd参数标识的窗口中继续工作以前,用户一定响应消息框。但是,用户可以移动到其他线程的窗口且在这些窗口中工作。根据应用程序中窗口的层次机构,用户则以移动到线程内的其他窗口。所有母消息框的子窗口自动地失效,但是弹出窗口不是这样。如果既没有指定MB_SYSTEMMODAL也没有指定MB_TASKMOOAL,则MB_APPLMODAL为缺省的。

    MB_SYSTEMMODAL:除了消息框有WB_EX_TOPMOST类型,MB_APPLMODAL和WS_EX_TOPMOST一样。用系统模态消息框来改变各种各样的用户,主要的损坏错误需要立即注意(例如,内存溢出)。如果不是那些与hwnd联系的窗口,此标志对用户对窗口的相互联系没有影响。

    MB_TASKMODAL:如果参数hwnd为NULL,除了所有属于当前线程高层次的窗口足失效的,MB_TASKMODALL和MB_ApPLMODAL一样。当调用应用程序或库没有一个可以得到的窗口句柄时,使用此标志。但仍需要阻止到调用应用程序甲其他窗口的输入而不是搁置其他线程。

    另外,可以指定下列标志。

    MB_DEFAULT_DESKTOP_ONLy:接收输入的当前桌面一定是一个缺省桌面。否则,函数调用失败。缺省桌面是一个在用户已经纪录且以后应用程序在此上面运行的桌面。

    MB_HELP:把一个Help按钮增加到消息框。选择Help按钮或按F1产生一个Help事件。

    MB_RIGHT:文本为右调整。

    MB_RTLREADING:用在Hebrew和Arabic系统中从右到左的顺序显示消息和大写文本。

    MB_SETFOREGROUND:消息框变为前景窗口。在内部系统为消息个调用SetForegrundWindow函数。

    MB_TOPMOSI:消息框用WS_EX_TOPMOST窗口类型来创建MB_SERVICE_NOTIFICATION。

    Windows NT:调用程序是一个通知事件的用户的服务程序。函数在当前活动桌面上显示一个消息框,即使没有用户登记到计算机。

    如果设置了此参数,则hwnd参数一定为NULL。所以消息框可以出现在一个桌面上而不是桌面响应参数hwnd。

    对于Windows NT 4.0,MB_SERVICE_NOTIFICATION的值己经改变。对于旧的和新的值,请参见WINUSER。

    Windows NT 4.O通过把旧值映射到MessageBox和MessageBoxEx执行中的新值,为先存在的服务程序提供逆兼容。此映射只为有了版本数目的可执行程序而做。

    为了建立一个用MB_SERVICE_NOTIFICATION的服务器,且可以在Windows NT 3.X和Window NT 4.0上执行,可有两种选择。在连接时间,指定一个版本数目小于4.0的版本,或在连接时间,指定一个4.0版本。在运行时间,用函数GetVersionEx来检测系统版本,然后在Windows NT 3.X上用MB_SERVICE_NOTIFICATION_NT 3.x来运行和在Windows NT 4.0上用MB_SERVICE_NOTIFICAION来运行。MB_SERVCE_NOTIFICATION_NT3.x(WindowNT)此值响应于为WindowNT3.51的MB_SERVICE_NOTIFICAION

    定义的值。

    返回值:如果没有足够的内存来创建消息框,则返回值为零。如果函数调用成功,则返回值为下列对话框返回的菜单项目值中的一个:

    IDABORT:Abort 按钮被选中。IDCANCEL:Cancel按钮被选中。IDIGNORE:Ignore按钮被选中。

    IDNO:NO按钮被选中。IDOK:OK按钮被选中。IDRETRY:RETRY按钮被选中。

    IDYES:YES按钮被选中。

    如果一个消息框有一个Cancel按钮,且如果Esc键被按下或Cancel键被选择,则函数返回IDCANCEL值。如果消息框没有Cancel按钮,则按Esc键没有作用。

    备注:当创建一个系统模态消息框来表示系统在内存的低端中时,由lpTeXt和lpCaption参数指向的字符串不应该从一个资源文件中取出,因为试图装载此资源可能导致失败。

    当一个应用程序调用MessageBox,且为uType参数指定MB_ICONHAND和MB_SYSTEMMODAL标志时,系统不管可用内存为多少,直接显示结果消息框。当这些标志被指定,系统把消息框文本的长度局限于三行。系统不能自动截断要填到消息框的行,但是消息字符串一定含有回车换行,以在合适的位置换行。

    如果在对话框出现的的同时创建了消息框,则可使用对话框的句柄作为hwnd参数,hwnd参数不应该标识一个子窗口,例如对话框中的一个控制。

    Windows 95:系统可以支持最大达16364个窗口句柄。

    Windows CE:Windows CE 不支持uType参数的下列值:

    MB_STSTEMMODAL;MB_TASKMODAL;MB_HELP;MB_RTLREADING;MB_DEFAULT_DESKTOP_ONLY;

    MB_SERVICE_NOTIFICATION;MB_USERICON。

    不支持下列返回值:IDCLOSE;IDHELP。

 

 7,句柄  是指向指针的指针

8,

 






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值