C++ 理论篇
zhouqian88423
这个作者很懒,什么都没留下…
展开
-
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 · 2414 阅读 · 0 评论 -
C++推荐书籍
首先肯定要读一读Bjarne Stroustrup的The Design and Evolution of C++,了解一下这个语言的历史。接下来就可以看别的书了,但要不停地回头看这本书,看到你不断地学到的新技术是怎么样一点点地被接纳到这个语言中去的。 第一本书因人而异,基础好一些的,可以看Stanley B. Lippman的C++ Primer,这本书非常地巨转载 2009-12-06 12:09:00 · 853 阅读 · 0 评论 -
windowproc与defwindowproc
在Windows操作系统里,当窗口显示之后,它就可以接收到系统源源不断地发过来的消息,然后窗口就需要处理这些消息,因此就需要一个函数来处理这些消息。在API里定义了一个函数为回调函数,当系统需要向窗口发送消息时,就会调用窗口给出的回调函数WindowProc,如果WindowProc函数不处理这个消息,就可以把它转向DefWindowProc函数来处理,这是系统的默认消息处理函数。当你按下菜单,或转载 2009-12-06 12:07:00 · 2528 阅读 · 1 评论 -
DispatchMessage函数
前面已经介绍从系统队列里获取一条消息,然后经过快捷键的函数检查,又通过字符消息函数的转换,最后要做的事情就是调用DispatchMessage函数,它的意思就是说要把这条消息发送到窗口里的消息处理函数WindowProc。函数DispatchMessage声明如下:WINUSERAPILRESULTWINAPIDispatchMessageA( __in CONST MSG *lpMsg转载 2009-12-06 12:06:00 · 911 阅读 · 0 评论 -
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 · 1807 阅读 · 0 评论 -
函数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 · 890 阅读 · 0 评论 -
关于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 · 814 阅读 · 0 评论 -
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 · 8051 阅读 · 1 评论 -
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 · 3261 阅读 · 0 评论 -
SelectObject和DeleteObject函数用法
Windows显示设备的属性,共有下面几种:位图、画刷、字体、画笔、区域。如果要设置它们到当前设备里,就需要使用SelectObject函数,比如上面介绍的字体设置,就会用到这个函数。当你创建一个位图时,这时Windows就会在内存里分配一块内存空间,用来保存位图的数据。当你创建字体时,也会分配一块内存空间保存字体。如果程序只是分配,而不去删除,就会造成内存使用越来越多,最后导到Windows转载 2009-12-06 11:53:00 · 4883 阅读 · 0 评论 -
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 · 1701 阅读 · 0 评论 -
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 · 5479 阅读 · 0 评论 -
sprintf 函数详细解释
sprintf() 格式化输出函数功能: 函数sprintf()用来作格式化的输出。用法: 此函数调用方式为int sprintf(char *string,char *format,arg_list);说明: 函数sprintf()的用法和printf()函数一样,只是sprintf()函数给出第一个参数string(一般为字符数组),然后再调用 outtextxy()函数将串里的字符显转载 2009-12-06 12:13:00 · 2791 阅读 · 0 评论 -
WaitForSingleObject的用法
WaitForSingleObject的用法DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds ); 参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果时间是有信号状态返回WAIT_OBJECT_0,如果时间超过dwMilliseconds值但时间事件还是转载 2009-12-06 12:15:00 · 495 阅读 · 0 评论 -
规范
2.1. 排版风格 程序块采用缩进风格编写,缩进为4个空格位。排版不混合使用空格和TAB键。 在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如->),后不应加空格。采用这种松散方式编写代码的目的是使代码更加清晰。例如:(1) 逗号、分号只在后面加空格printf(%d %d %d ,转载 2009-12-06 12:17:00 · 585 阅读 · 0 评论 -
PostQuitMessage函数用法例解
自然界面里,各种生物都是有其生命周期的。程序也是有其生命周期的,创建时就是它出生了,当它运行工作中就是成年期,最后少不了要死亡的,那么程序的死亡是怎么样出现的呢?像函数GetMessage里是使用一个循环不断地检测消息,周止复始的,是不可能出现死亡的,但它会检测到消息WM_QUIT就退出来。那现在问题是谁发送WM_QUIT消息出来呢?这就是PostQuitMessage函数所做的工作。当你点击窗口转载 2009-12-06 12:12:00 · 3353 阅读 · 0 评论 -
#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 · 994 阅读 · 0 评论 -
消息循环中的TranslateMessage函数
函数功能描述:将虚拟键消息转换为字符消息。字符消息被送到调用线程的消息队列中,在下一次线程调用函数GetMessage或PeekMessage时被读出。 .函数原型: BOOL TranslateMessage( CONST MSG *lpMsg );.参数: lpMsg 指向一个含有用GetMessage或PeekMessage函数从调用线程的消息队列中取得消转载 2009-12-06 12:06:00 · 606 阅读 · 0 评论 -
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 · 2508 阅读 · 0 评论 -
CreatePen 用法
//声明:CreatePen(Style, Width: Integer; {样式与笔宽}Color: COLORREF {颜色}): HPEN; {返回笔句柄}//Style 参数可选值:PS_SOLID = 0; {实线}PS_DASH = 1; {段线; 要求笔宽PS_DOT = 2; {转载 2009-12-06 11:53:00 · 2025 阅读 · 0 评论 -
rand()和srand()GetTickCount函数用法
标准库(被包含于中)提供两个帮助生成伪随机数的函数:函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。函数二:void srand(unsigned seed);参数seed是rand()的种子,用来初始化rand()的起始值。可以认为rand()在每次被调用的转载 2009-12-06 11:49:00 · 1803 阅读 · 0 评论 -
SetTimer killTimer用法
SetTimer函数用于创建一个计时器,KillTimer函数用于销毁一个计时器。计时器属于系统资源,使用完应及时销毁。 SetTimer的函数原型如下:UINT_PTR SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc ) ; 其中 hWnd是和timer关联的窗口句转载 2009-12-06 11:44:00 · 761 阅读 · 0 评论 -
conio.h/stdlib.h
conio.h不是C标准库中的头文件。 conio是Console Input/Output(控制台输入输出)的简写,其中定义了通过控制台进行数据输入和数据输出的函数,主要是一些用户通过按键盘产生的对应操作,比如getch()函数等等。 包含的函数 cgets(char *); cprintf(const char *, ...); cputs(const char转载 2009-12-06 11:07:00 · 536 阅读 · 0 评论 -
LoadString用法
LoadString(hInstance: HINST; {EXE 或 DLL 的句柄}uID: UINT; {资源 ID}lpBuffer: PChar; {缓冲区}nBufferMax: Integer {缓冲区大小}): Integer 在编写国际化的应用程序里,经常要使用不同语言的字符串。比如中文菜单里叫做“文件”,而在英语里叫做“File”。开发这种软转载 2009-12-06 11:02:00 · 3231 阅读 · 0 评论 -
DialogBOX-函数功能
该宏根据对话框模板资源创建一个模态的对话框。DialogBOX函数直到指定的回调函数通过调用EndDialog函数中止模态的对话框才能返回控制。该宏使用DialogBoxParam函数。函数原型:int DialogBox(HINSTANCE hlnstance,LPCTSTRIpTemplate,HWND hWndParent,DLGPROC IpDialogFunc); 参数:hlnst转载 2009-12-06 11:01:00 · 2558 阅读 · 0 评论 -
改变硬盘和U盘背景
改变硬盘和U盘背景不知是否有网友发过类似的贴,我觉得蛮有意思的打开 U 盘或硬盘, 在根目录下粘贴上一张已选好的图片 (最好是1024*768)以 a.jpg 为例, 然后新建一个文本 文档写入如下字段:[ExtShellFolderViews]{BE098140-A513-11D0-A3A4-00c04FD706EC}={BE098140-A513-11D0-A3转载 2009-12-06 12:20:00 · 522 阅读 · 0 评论 -
CreateSolidBrush用法
当你看到Windows显示的按钮时,背景颜色是灰色的。当你看到缺省的窗口背景时,它是白色的。当你的老板需要你创建一个黑色背景的按钮时,你会怎么样做呢?其实在Windows里先用API函数CreateSolidBrush创建画刷,然后调用FillRect函数来填充背景。这样来,不管你需要什么样的背景,都随心所欲了吧。现在先来搞懂CreateSolidBrush函数,下次再来练习FillRect。函数转载 2009-12-06 11:50:00 · 3631 阅读 · 0 评论 -
FillRect与FrameRect用法
FillRect 函数功能:该函数用指定的画刷填充矩形,此函数包括矩形的左上边界,但不包括矩形的右下边界。 函数原型:int FillRect(HDC hdc, CONST RECT *lprc, HBRUSH hbr); 参数: hdc:设备环境句柄。 lprc:指向含有将填充矩形的逻辑坐标的RECT结构的指针。 hbr:用来填充矩形的画刷的句柄。 返回值:如果函数调用成功转载 2009-12-06 11:49:00 · 8228 阅读 · 1 评论 -
ellipse()用法
ellipse()画椭圆弧函数功能: 函数ellipse()使用当前绘图色画一椭圆弧。用法: 该函数调用方式为void ellipse(int x,int y,int startangle,int endangle, int xradius,int yradius);说明: 参数x,y为椭圆中心坐标,st转载 2009-12-06 11:48:00 · 14741 阅读 · 1 评论 -
LoadIcon的用法
一.在SDK平台上,它的原型是:HICON LoadIcon(HINSTANCE hInstance,LPCTSTR lpIconName);1.函数说明:该函数从与hInstance模块相关联的可执行文件中装入lpIconName指定的图标资源,仅当图标资源还没有被装入时该函数才执行装入操作,否则只获取装入的资源句柄2.参数说明:lpIconName是指向NU转载 2009-12-06 12:05:00 · 2231 阅读 · 0 评论 -
LoadMenu 的用法
WinAPI: LoadMenu - 从资源中载入菜单//声明:LoadMenu( hInstance: HINST; {EXE 或 DLL 的句柄} lpMenuName: PChar {资源标识符}): HMENU; {返回菜单句柄}//rc 文件:MyMenu1 MENUbeginPopup "File"begin转载 2009-12-06 12:02:00 · 2510 阅读 · 1 评论 -
SetMenu用法
SetMenu-函数功能函数功能:该函数分配一个新菜单到指定窗口。函数原型:BOOL SetMenu(HWND hWnd,HMENU hMenu);参数:hWnd:菜单被分配到其中的窗口的句柄。HMenu:新菜单的句柄。如果菜单参数为NULL,则窗口的当前菜单被删除。SetMenu-返回值 返回值:如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更转载 2009-12-06 11:58:00 · 4127 阅读 · 0 评论 -
peekmessage,getmessage区别浅入浅出
区别一:peekmessage不管消息队列里有没有消息都会马上返回,有消息返回消息,没消息返回空值,getmessage等待到有消息的时候才返回,区别二:peekmessage可以根据参数决定是否将消息保留在队列中,PM_NOREMOVE:该参数指示保留消息PM_REMOVE:该参数指示移去消息而getmessage获得消息后回把消息从消息队列中删去例程:// GetMessage转载 2009-12-06 11:58:00 · 369 阅读 · 0 评论 -
关于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 · 2137 阅读 · 0 评论 -
sendmessage的用法
本文是对MSDN中关于SendMessage的翻译与小结。SendMessage函数功能描述:将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口过程,直到窗口过程处理完消息后才返回。.函数原型:LRESULT SendMessage(HWND hWnd, // 目标窗口句柄UINT Msg, // 被发送的消息WPARAM wParam, // 第一个消息参数LPARAM lPa转载 2009-12-06 11:55:00 · 852 阅读 · 0 评论 -
SetPixel用法
SetPixel 函数功能:该函数将指定坐标处的像素设为指定的颜色。 函数原型:COLORREF SetPixel(HDC hdc, int X, int Y, COLORREF crColor); 参数: hdc:设备环境句柄。 X:指定要设置的点的X轴坐标,按逻辑单位表示坐标。 Y:指定要设置的点的Y轴坐标,按逻辑单位表示坐标。 crColor:指定要用来转载 2009-12-06 11:54:00 · 25082 阅读 · 0 评论 -
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 · 1317 阅读 · 0 评论 -
头文件
头文件1.要在函数中使用参数,首先要包含头文件。这个头文件声明了一个va_list类型,定义了四个宏,用来遍历可变参数列表。void va_start(va_list ap, last);type va_arg(va_list ap, type);void va_end(va_list ap);void va_copy(va_list dest, va_li转载 2009-12-06 11:06:00 · 1712 阅读 · 0 评论 -
#define INITGUID 是什么
定义宏 #define INITGUID // 定义DirectX全局唯一标识符在项目属性-》链接器-》命令行里加了个ddraw.lib转载 2009-12-06 11:05:00 · 2107 阅读 · 1 评论 -
VC6.0快捷键大全
F1 显示帮助,如果光标停在代码的某个字符上,显示MSDN中相应的帮助内容F2 书签功能: Ctrl+F2 --在某行设置一个书签(再按一次次是取消)F2 --跳到下一个书签位置Shift+F2 --跳到上一个书签位置Ctrl+Shift+F2 --删除所有书签F3 查找: Ctrl+F3 --在文件中查找,如果当前光标在一个字符串上,那么自动查找此字符转载 2009-12-06 10:59:00 · 815 阅读 · 1 评论