2011年8月22日

C,C++中使用可变参数

摘要: 可变参数是实现printf(),sprintf()等函数的关键之处,也可以用可变参数来对任意数量的数据进行求和,求平均值带来方便(不然就用数组或每种写个重载)。在C#中有专门的关键字parame,但在C,C++并没有类似的语法,不过幸好提供这方面的处理函数,本文将重点介绍如何使用这些函数。 第一步 可变参数表示 第二步 如何处理va_list类型 第三步 vfprintf()函数和vsprintf()函数 最后了给出了代码范例 阅读全文

posted @ 2011-08-22 10:18 MoreWindows 阅读(4917) 评论(4) 推荐(3) 编辑

2011年8月20日

图解如何在VC,VS2008中设置程序条件断点

摘要: VC6.0中按Ctrl+B可以弹出断点设置对话框点Condition,弹出Breakpoint Condition对话框中输入i==5||j==5。再点确定。再按F5运行程序,就会在设置的条件满足时停止。注意这句Break at ‘{, test.cpp,}.12’ when ‘i==5||j==5’。一般按F9设置的断点都没有后面这个语句称为指定行上无条件断点,这种可以称为指定行指定条件断点。另外在Breakpoins对话框上还可以对Messages设置断点方便我们调试Winexe程序。VS2008中设置条件断点直接在断点窗口中设置再输入i==5||j==5VS2008在条件满足也时不会像V 阅读全文

posted @ 2011-08-20 18:47 MoreWindows 阅读(3412) 评论(0) 推荐(0) 编辑

2011年8月19日

VC 利用DLL共享区间在进程间共享数据及进程间广播消息

摘要: 在进程间共享数据有很多种方法,剪贴板,映射文件等都可以实现,这里介绍用DLL的共享区间在进程间共享数据,及共享数据有变化时及时的反馈给各相关进程。一.在DLL中设置共享区间在DLL中是用数据段来实现共享区间的,有了这个共享区间,各进程可以方便的共享数据。1.先用#pragma data_seg(Name)设置名为Name的数据段。2.再用#pragma comment(linker, "/SECTION:Name,RWS")设置名为Name的数据段属性。/SECTION就表示为这是一个数据区间,R——Read读,W——Write写,S——Share共享。如:const in 阅读全文

posted @ 2011-08-19 15:40 MoreWindows 阅读(5212) 评论(0) 推荐(1) 编辑

2011年8月18日

C,C++宏中#与##的讲解

摘要: 文中__FILE__与示例1可以参见《使用ANSI C and Microsoft C++中常用的预定义宏》宏中的#的功能是将其后面的宏参数进行字符串化操作(Stringizing operator),简单说就是在它引用的宏变量的左右各加上一个双引号。如定义好#define STRING(x) #x之后,下面二条语句就等价。 char *pChar = "hello"; char *pChar = STRING(hello);还有一个#@是加单引号(Charizing Operator)#define makechar(x) #@x char ch = makechar(b 阅读全文

posted @ 2011-08-18 10:50 MoreWindows 阅读(44232) 评论(5) 推荐(10) 编辑

2011年8月17日

使用ANSI C and Microsoft C++中常用的预定义宏

摘要: __FILE__ 源文件的名称 如XXX.cpp__LINE__ 代码在源文件中是第几行 __DATE__ 源文件完成日期如Aug 17 2011__TIME__ 源文件完成时间如19:31:13__TIMESTAMP__ 源文件完成日期时间如Wed Aug 17 19:27:36 2011如分配内存函数malloc()的一个版本就使用了上面的宏#define malloc(s) _malloc_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)另外可以在程序中使用__FILE__和__LINE__来确定是哪个文件哪一行出错: char *pszFileName 阅读全文

posted @ 2011-08-17 21:30 MoreWindows 阅读(2298) 评论(0) 推荐(1) 编辑

2011年8月15日

VC 用发音函数Beep()播放简谱音乐

摘要: Win32 API中有个非常有意思的发音函数Beep(),可以用它在扬声器上播放简单的音调,如果按简谱来设置播放的内容,就可以播放一些简单的音乐了。函数原型:BOOL WINAPI Beep( __in DWORD dwFreq, __in DWORD dwDuration);函数说明:第一个参数表示频率,用Hz为单位,可以在0x25到0x7FFF之间。第二个参数表示持续的时间,以毫秒为单位。与这个函数类似的是:BOOL WINAPI MessageBeep( __in UINT uType);这个函数使用要广泛的多。相当多的程序在MessageBox()之前都会调用MessageBeep() 阅读全文

posted @ 2011-08-15 15:28 MoreWindows 阅读(9525) 评论(3) 推荐(4) 编辑

2011年8月14日

VC 为程序创建快捷方式的详细讲解

摘要: 有时候,为了方便用户使用我们编写的程序,需要在桌面,快速启动或程序组中创建程序的快捷方式。下面就介绍在VC下如何为程序创建快捷方式。一.得到桌面,快速启动或程序组的路径这里介绍二个win32 API函数来完成这个任务。第一个函数 获得系统特殊路径HRESULTSHGetSpecialFolderLocation(HWNDhwndOwner,intnFolder,PIDLIST_ABSOLUTE*ppidl);第一个参数表示所有者窗口句柄,一般传入NULL就可以了。第二个参数要示是一个整数id,决定哪个目录是待查找目录,它的取值可能是 CSIDL_BITBUCKET 回收站 CSIDL_CONT 阅读全文

posted @ 2011-08-14 20:45 MoreWindows 阅读(14866) 评论(5) 推荐(6) 编辑

2011年8月13日

使用VC库函数中的快速排序函数

摘要: VC中库函数qsort()的用法 函数原型 头文件 分别就int等整数数据,double等浮点数据,结构体和类,按指定方式这四种情况进行讲解 阅读全文

posted @ 2011-08-13 18:42 MoreWindows 阅读(2362) 评论(2) 推荐(3) 编辑

白话经典算法系列之六 快速排序 快速搞定

摘要: 快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。总的说来,要直接默写出快速排序还是有一定难度的,因为本人就自己的理解对快速排序作了下白话解释,希望对大家理解有帮助,达到快速排序,快速搞定。快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。该方法的基本思想是:1.先从数 阅读全文

posted @ 2011-08-13 17:16 MoreWindows 阅读(96199) 评论(48) 推荐(49) 编辑

2011年8月12日

VC 如何使程序运行后自己删除自己

摘要: VC Win32 api 运行后能够自己删除自己的可执行程序 自删除文件的实现 批处理 创建BAT文件 调用cmd传入命令 设置进程为实时执行,快速退出 通知资源管理器不显示本程序的图标 _pgmptr ShellExecute DOS命令del的/q参数 安静模式 删除文件时不出现要求用户确认的提示对话框 阅读全文

posted @ 2011-08-12 16:05 MoreWindows 阅读(12405) 评论(15) 推荐(6) 编辑

导航