- 博客(64)
- 资源 (146)
- 收藏
- 关注
原创 c语言下的gb2312和utf8及unicode之间的互相转换
仅仅针对汉字(每个汉字在UTF-8编码中占3个字节),如果字符串中有英文,就有麻烦了,因为英文在UTF-8编码中只有一个字节。另外有的字符会占用更多的字节。所以这个类并不适用。再参考一些文章,给出转换方式如下://gb2312 to unicodeint wLen = MultiByteToWideChar(CP_ACP, 0, lpszText, -1, NULL, 0);LPWSTR
2010-04-16 11:38:00 2477
转载 smtp邮件格式(附件)
已经厌倦了给你的朋友和客户发送那些单调乏味的文本通知和信件了吗?曾经考虑过发送附件或在邮中嵌入HTML吧答案就是MIME。接下来的几页解释了MIME的基础知识,创建符合MIME的信息,然后用一个可以工作的PHP类结束,这个类实现了发送符合MIME邮件。注意对调用脚本,调用者等等的引用表示使用了将要开发的类的脚本,客户程序/MUA等等表示邮件阅读的客户程序或邮件使用代理程序。一些MIME基础MIME
2010-04-07 16:39:00 4414
转载 必须掌握的八个DOS命令
一,ping 它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看
2010-02-03 18:55:00 617
转载 动态分配二维数组以及指针的相关精华
关于二维数组 二维数组可以理解为一个指针数组 每个数组成员都指向一个一维数组例如 int a[3][6] a[0]是第一个一维数组 她有6个成员a是指向a[0] 的指针 *a即a[0]a[0]本身是数组名 也就是指向a[0][0]的指针 即 *a[0]=a[0][0]所以 *(*a) 即a[0][0]的整形值 *(*(a+1)+3) 即 第2行第3列的整型值关于二维数组
2010-01-29 21:59:00 1024
转载 c++按位操作符
c++按位操作符顾名思义,按位运算符允许按照位来操作整型变量。可以把按位运算符应用于任意signed和unsigned整型,包括char类型。但是,它们通常应用于不带符号的整型。这些运算符的一个常见应用是在整型变量中使用单个的位存储信息。例如标记,它用于描述二进制状态指示符。可以使用一个位来描述有两个状态的值:开或关、男或女,真或假。也可以使用按位运算符处理
2010-01-18 11:01:00 3057
转载 WIN32_FIND_DATA
WIN32_FIND_DATA 关于文件的全部属性信息,总计有以下以下9种:文件的标题名、文件的属性(只读、存档,隐藏等)、文件的创建时间、文件的最后访问时间、文件的最后修改时间、文件大小的高位双字、文件大小的低位双字、保留、保留。在这里只有文件标题名和文件的长度可以通过CFile类比较方便的获得,而对于其他几种
2010-01-18 10:58:00 908
转载 改变硬盘和U盘背景
改变硬盘和U盘背景不知是否有网友发过类似的贴,我觉得蛮有意思的打开 U 盘或硬盘, 在根目录下粘贴上一张已选好的图片 (最好是1024*768)以 a.jpg 为例, 然后新建一个文本 文档写入如下字段:[ExtShellFolderViews]{BE098140-A513-11D0-A3A4-00c04FD706EC}={BE098140-A513-11D0-A3
2009-12-06 12:20:00 534
转载 UpdateData()用法
UpdateData()用法 一、总结UpdateData()函数UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。 当你使用了ClassWizard建立了控件和变量之间的联系后:当你修改了变量的值,而希望对话框控件更新显示,就应该在修改变量后调用UpdateDa
2009-12-06 12:17:00 689
转载 规范
2.1. 排版风格 程序块采用缩进风格编写,缩进为4个空格位。排版不混合使用空格和TAB键。 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格。采用这种松散方式编写代码的目的是使代码更加清晰。例如:(1) 逗号、分号只在后面加空格printf(%d %d %d ,
2009-12-06 12:17:00 619
转载 VC中将文本框的光标移到最后
GetDlgItem(ID)->SendMessage(WM_KEYDOWN,VK_END,0);GetDlgItem(ID)->SetFocus();
2009-12-06 12:16:00 1762
转载 WaitForSingleObject的用法
WaitForSingleObject的用法DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds ); 参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果时间是有信号状态返回WAIT_OBJECT_0,如果时间超过dwMilliseconds值但时间事件还是
2009-12-06 12:15:00 507
转载 关于多线程的补充
各个线程可以访问进程中的公共变量,所以使用多线程的过程中需要注意的问题是如何防止两个或两个以上的线程同时访问同一个数据,以免破坏数据的完整性。保证各个线程可以在一起适当的协调工作称为线程之间的同步。前面一节介绍的事件对象实际上就是一种同步形式。Visual C++中使用同步类来解决操作系统的并行性而引起的数据不安全的问题,MFC支持的七个多线程的同步类可以分成两大类:同步对象(CsyncObjec
2009-12-06 12:14:00 657
转载 sprintf 函数详细解释
sprintf() 格式化输出函数功能: 函数sprintf()用来作格式化的输出。用法: 此函数调用方式为int sprintf(char *string,char *format,arg_list);说明: 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再调用 outtextxy()函数将串里的字符显
2009-12-06 12:13:00 2808
转载 PostQuitMessage函数用法例解
自然界面里,各种生物都是有其生命周期的。程序也是有其生命周期的,创建时就是它出生了,当它运行工作中就是成年期,最后少不了要死亡的,那么程序的死亡是怎么样出现的呢?像函数GetMessage里是使用一个循环不断地检测消息,周止复始的,是不可能出现死亡的,但它会检测到消息WM_QUIT就退出来。那现在问题是谁发送WM_QUIT消息出来呢?这就是PostQuitMessage函数所做的工作。当你点击窗口
2009-12-06 12:12:00 3383
转载 SetTimer函数的用法
什么时候我们需要用到SetTimer函数呢?当你需要每个一段时间执行一件事的的时候就需要使用SetTimer函数了。 使用定时器的方法比较简单,通常告诉WINDOWS一个时间间隔,然后WINDOWS以此时间间隔周期性触发程序。通常有两种方法来实现:发送WM_TIMER消息和调用应用程序定义的回调函数。 1.1 用WM_TIMER来设置定时器先请看SetTimer
2009-12-06 12:12:00 526
转载 C++推荐书籍
首先肯定要读一读Bjarne Stroustrup的The Design and Evolution of C++,了解一下这个语言的历史。接下来就可以看别的书了,但要不停地回头看这本书,看到你不断地学到的新技术是怎么样一点点地被接纳到这个语言中去的。 第一本书因人而异,基础好一些的,可以看Stanley B. Lippman的C++ Primer,这本书非常地巨
2009-12-06 12:09:00 881
转载 #define WIN32_LEAN_AND_MEAN 的作用
为加速生成过程,Visual C++ 提供了如下定义(这些定义通过排除一些不太常用的 API,减小了 Win32 头文件的大小): VC_EXTRALEAN WIN32_LEAN_AND_MEAN VC_EXTRALEAN 定义 WIN32_LEAN_AND_MEAN 和若干 NOservice 定义,如 NOCOMM 和 NOSOUND。(有关 NOservice 定义列表,请参见头文件 Win
2009-12-06 12:08:00 1023
转载 windowproc与defwindowproc
在Windows操作系统里,当窗口显示之后,它就可以接收到系统源源不断地发过来的消息,然后窗口就需要处理这些消息,因此就需要一个函数来处理这些消息。在API里定义了一个函数为回调函数,当系统需要向窗口发送消息时,就会调用窗口给出的回调函数WindowProc,如果WindowProc函数不处理这个消息,就可以把它转向DefWindowProc函数来处理,这是系统的默认消息处理函数。当你按下菜单,或
2009-12-06 12:07:00 2557 1
转载 windowsx.h 和windows.h的区别
WINDOWSX.H 头文件为W32SDK的程序员提供方便(工具?)很多初中级程序员用C/C++编写Windwos API的程序时,经常面对面条式的switch...case语句块当你在Window过程(回调函数、下称过程)中加入大量诸如WM_COMMAND or WM_CHAR的消息捕获时。真是一场噩梦。关于上千行代码的Window过程的问题,随着 C/C++ 7.0 编译器和W
2009-12-06 12:07:00 1288
转载 DispatchMessage函数
前面已经介绍从系统队列里获取一条消息,然后经过快捷键的函数检查,又通过字符消息函数的转换,最后要做的事情就是调用DispatchMessage函数,它的意思就是说要把这条消息发送到窗口里的消息处理函数WindowProc。函数DispatchMessage声明如下:WINUSERAPILRESULTWINAPIDispatchMessageA( __in CONST MSG *lpMsg
2009-12-06 12:06:00 925
转载 消息循环中的TranslateMessage函数
函数功能描述:将虚拟键消息转换为字符消息。字符消息被送到调用线程的消息队列中,在下一次线程调用函数GetMessage或PeekMessage时被读出。 .函数原型: BOOL TranslateMessage( CONST MSG *lpMsg );.参数: lpMsg 指向一个含有用GetMessage或PeekMessage函数从调用线程的消息队列中取得消
2009-12-06 12:06:00 620
转载 LoadIcon的用法
一.在SDK平台上,它的原型是:HICON LoadIcon(HINSTANCE hInstance,LPCTSTR lpIconName);1.函数说明:该函数从与hInstance模块相关联的可执行文件中装入lpIconName指定的图标资源,仅当图标资源还没有被装入时该函数才执行装入操作,否则只获取装入的资源句柄2.参数说明:lpIconName是指向NU
2009-12-06 12:05:00 2262
转载 unresolved external symbol __imp__PlaySoundA@12 的解决办法
添加Winmm.lib和 头文件中包含 Mmsystem.h选择"project"->"setting"->"link"->"Object/library modules"然后添加"Winmm.lib"就可以了。 另一个常见的编译错误是。编译时选择的是控制台程序。修改时设置 选择"project"->"setting"->"link"->"Project Options
2009-12-06 12:05:00 1826
转载 关于winmain的几个参数
悉C编程的人都知道main函数带有2个参数:arc和argv,完整的main函数定义是:int main(int argc, char *argv[])。argc指示程序启动时命令行参数的个数,argv则包含具体的参数字符串。如果有程序叫“hello.exe”,直接启动时,argc=1, argv[0]=hello.exe。如果以“hello.exe readme.txt”的形式启动,ar
2009-12-06 12:04:00 831
转载 函数PlaySound和sndPlaySound的用法
函数PlaySound和sndPlaySound的用法一.PlaySound函数的声明为:BOOL PlaySound(LPCSTR pszSound,HMODULE hmod,DWORD fdwSound);1.参数pszSound:是指定了要播放声音的字符串,该参数可以是WAVE文件的名字,或是WAVE资源的名字,或是内存中声音数据的指针,或是在系统注册表WIN.INI中定义的
2009-12-06 12:04:00 907
转载 LoadMenu 的用法
WinAPI: LoadMenu - 从资源中载入菜单//声明:LoadMenu( hInstance: HINST; {EXE 或 DLL 的句柄} lpMenuName: PChar {资源标识符}): HMENU; {返回菜单句柄}//rc 文件:MyMenu1 MENUbeginPopup "File"begin
2009-12-06 12:02:00 2583 1
转载 peekmessage,getmessage区别浅入浅出
区别一:peekmessage不管消息队列里有没有消息都会马上返回,有消息返回消息,没消息返回空值,getmessage等待到有消息的时候才返回,区别二:peekmessage可以根据参数决定是否将消息保留在队列中,PM_NOREMOVE:该参数指示保留消息PM_REMOVE:该参数指示移去消息而getmessage获得消息后回把消息从消息队列中删去例程:// GetMessage
2009-12-06 11:58:00 378
转载 SetMenu用法
SetMenu-函数功能函数功能:该函数分配一个新菜单到指定窗口。函数原型:BOOL SetMenu(HWND hWnd,HMENU hMenu);参数:hWnd:菜单被分配到其中的窗口的句柄。HMenu:新菜单的句柄。如果菜单参数为NULL,则窗口的当前菜单被删除。SetMenu-返回值 返回值:如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更
2009-12-06 11:58:00 4186
转载 关于HDC GetDC ReleaseDC
HDC hdc;定义一个设备上下文的句柄,在API中用如API中响应WM_PAINT时,要在窗口中显示文字:RECT rc;GetClientRect(hWnd,&rc);//获取客户区域PAINTSTRUCT ps;HDC hdc=BeginPaint(hWnd,&ps);//获取设备上下文的句柄DrawText(hdc,"hello",strlen("hello"),&rc,DT_CENTER
2009-12-06 11:57:00 2159
转载 GetAsyncKeyState用法
GetAsyncKeyState 就是调用GetAsyncKeyState函数得到某个键的状态,然后判断返回值的最高位是不是1,如果是表示这个处于按下状态1、&与操作,&0x8000就是判断这个返回值的high-order bit(高位字节)2、如果high-order bit是1,则是按下状态,否则UP状态 #define KEYDOWN(vk_code) ((GetAsyncK
2009-12-06 11:56:00 8219 1
转载 SetTextColor() COLORREF SetBkColor SetBkMode的用法
函数名 SetTextColor() 功能 设置指定设备环境(HDC)的字体颜色 说明 Windows API函数 原型 WINGDIAPI COLORREF WINAPI SetTextColor (HDC, COLORREF) 也可以理解成 DWORD SetTextColor (HDC, DWORD),其中DWORD是关于颜色的参数,常用RGB()获取 例如: S
2009-12-06 11:56:00 2594
转载 COLORREF 的用法
COLORREF 是一个 32-bit 整型数值,它代表了一种颜色。你可以使用 RGB 函数来初始化 COLORREF。例如: COLORREF color=RGB(0,255,0); RGB函数接收三个 0-255 数值,一个代表红色,一个代表绿色,一个代表蓝色。在上面的例子中,红色和蓝色值都为 0,所以在该颜色中没有红色和蓝色。绿色为最大值255。所以该颜色为绿色。0,0,
2009-12-06 11:55:00 3344
转载 sendmessage的用法
本文是对MSDN中关于SendMessage的翻译与小结。SendMessage函数功能描述:将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口过程,直到窗口过程处理完消息后才返回。.函数原型:LRESULT SendMessage(HWND hWnd, // 目标窗口句柄UINT Msg, // 被发送的消息WPARAM wParam, // 第一个消息参数LPARAM lPa
2009-12-06 11:55:00 883
转载 SetPixel用法
SetPixel 函数功能:该函数将指定坐标处的像素设为指定的颜色。 函数原型:COLORREF SetPixel(HDC hdc, int X, int Y, COLORREF crColor); 参数: hdc:设备环境句柄。 X:指定要设置的点的X轴坐标,按逻辑单位表示坐标。 Y:指定要设置的点的Y轴坐标,按逻辑单位表示坐标。 crColor:指定要用来
2009-12-06 11:54:00 25320
转载 SelectObject和DeleteObject函数用法
Windows显示设备的属性,共有下面几种:位图、画刷、字体、画笔、区域。如果要设置它们到当前设备里,就需要使用SelectObject函数,比如上面介绍的字体设置,就会用到这个函数。当你创建一个位图时,这时Windows就会在内存里分配一块内存空间,用来保存位图的数据。当你创建字体时,也会分配一块内存空间保存字体。如果程序只是分配,而不去删除,就会造成内存使用越来越多,最后导到Windows
2009-12-06 11:53:00 4951
转载 CreatePen 用法
//声明:CreatePen(Style, Width: Integer; {样式与笔宽}Color: COLORREF {颜色}): HPEN; {返回笔句柄}//Style 参数可选值:PS_SOLID = 0; {实线}PS_DASH = 1; {段线; 要求笔宽PS_DOT = 2; {
2009-12-06 11:53:00 2055
转载 Rect用法
RectRect(float x, float y, float w, float h [, string style]) 版本1.0 內容产生一个矩形。 它可以划出来(只跟边界)、填满(没有边界)或者同时两个都可以。 參數x 左上角的横坐标(x)。 y 左上角的纵坐标(y)。 w 宽度 h 高度 style 表现
2009-12-06 11:52:00 1801
转载 WinAPI: MoveToEx 与 LineTo 的用法
//声明:MoveToEx(DC: HDC; {设备环境句柄}p2, p3: Integer; {坐标}p4: PPoint {用于保存 p2、p3 值的 TPoint 结构的指针}): BOOL;LineTo(DC: HDC; {设备环境句柄}X, Y: Integer {直线终点坐标}): BOOL;现在的世界流行图形界面,而不是文
2009-12-06 11:52:00 1355
转载 HBrush用法
HBRUSH hbr;第一种: hbr= CreateSolidBrush(RGB(255,0,0)); //单色的画刷第二种: hbr= (HBRUSH)GetStockObject(BLACK_BRUSH); //只能取特定颜色的画刷,如BLACK_BRUSH,GRAY_BRUSH等刷第三种: hbr= CreatePatternBrush(HBITMA
2009-12-06 11:51:00 5604
转载 CreateSolidBrush用法
当你看到Windows显示的按钮时,背景颜色是灰色的。当你看到缺省的窗口背景时,它是白色的。当你的老板需要你创建一个黑色背景的按钮时,你会怎么样做呢?其实在Windows里先用API函数CreateSolidBrush创建画刷,然后调用FillRect函数来填充背景。这样来,不管你需要什么样的背景,都随心所欲了吧。现在先来搞懂CreateSolidBrush函数,下次再来练习FillRect。函数
2009-12-06 11:50:00 3701
linux编程大全.rar
2010-09-15
VistaBootPRO_3.3.0
2010-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人