
C&C++
WaveYang
这个作者很懒,什么都没留下…
展开
-
读《华为编程规范与范例》, 在今后的项目管理中是实践之
范例都是C语言的, 规定的很细,很严谨。 虽然会有些麻烦, 但是可以显著提高代码的质量和可维护性。 在老妖的站上有下。原创 2010-12-05 11:44:00 · 707 阅读 · 0 评论 -
VC++:如何将程序启动时最小化到托盘
VC++:如何将程序启动时最小化到托盘 在Windows操作系统中,任务栏的右边(托盘)会常驻几个图标,如输入法切换图标、音量控制图标等,此外我们还经常遇到具有托盘图标的软件,如金山词霸、实时监测功能的杀毒软件等。这些软件在后台运行,通常不占用太多的屏幕资源,只在通知栏上放一个小小的标志,必要时我们可以通过用鼠标点击图标对其进行选单操作或激活其主窗口。有时我们自己编写的程序也希望有类似的效果,本文将详细地介绍用VC设计托盘图标程序的方法。 一、 NOTIFYICONDATA结构 NOTI转载 2011-05-28 00:24:00 · 1499 阅读 · 0 评论 -
遍历目录内所有子目录及子目录中的文件
2010-03-13 09:28<br />//遍历目录内所有子目录及子目录中的文件,Flag=0仅列举,Flag=1仅删除文件,Flag=2删除所有文件及所有子目录<br />/*<br /> //Daniel QQ9562512<br /> //调用示例<br /> sDir = ExtractFilePath(sFileName);<br /> TStrings *StringList = new TStringList();<br /> ListAllFile(sDi原创 2011-03-18 23:36:00 · 1147 阅读 · 0 评论 -
判断-U盘拔出和插入-获取它盘符
判断-U盘拔出和插入-获取它盘符2010-05-04 10:59<br />加入消息<br />ON_WM_DEVICECHANGE(OnDeviceChange)<br />加入<br />afx_msg void OnDeviceChange(UINT nEventType, DWORD dwData);<br />-----------------------------------------------------------------------------------------------转载 2011-03-18 23:11:00 · 3949 阅读 · 2 评论 -
如何在VC中加减日期及 CTime COleDateTime的常用操作和比较
如何在VC中加减日期及 CTime COleDateTime的常用操作和比较 [转贴 2008-10-31 15:51:28] 字号:大中小<br />如何在VC中加减日期<br /> 使用CTime类,如:<br /> CTime t1( 1999, 3, 19, 22, 15, 0 ); // 10:15PM March 19, 1999<br /> CTime t2( 1999, 3, 20, 22, 15, 0 ); // 10:15PM March 20, 1999<br />转载 2011-02-18 15:48:00 · 8256 阅读 · 0 评论 -
MultiByteToWideChar和WideCharToMultiByte用法详解
MultiByteToWideChar和WideCharToMultiByte用法详解 MultiByteToWideChar和WideCharToMultiByte用法详解//========================================================================<br />//TITLE:<br />// MultiByteToWideChar和WideCharToMultiByte用法详解<br />//AUTHOR:<br />//转载 2011-01-13 20:09:00 · 754 阅读 · 0 评论 -
typedef使用大全(指向函数的指针)
typedef使用大全(指向函数的指针)September 16th, 2008 | lonkil | 编程开发 | 发表评论 | trackback<br />原文:http://blog.chinaunix.net/u1/58640/showart_481212.html<br />原作者博客中还有两篇typedef的基本用法,如果有需要的朋友可以参考。<br />1.typedef使用大全(数组)<br />2.typedef使用大全(结构体)<br />//by lonkil<br />在typed转载 2011-01-03 20:08:00 · 711 阅读 · 0 评论 -
VC 设置系统时间
VC 设置系统时间2009年06月08日 星期一 18:181、使用API函数SetLocalTime进行本地时间设置。1)SetLocalTime函数的原型:BOOL SetLocalTime( const SYSTEMTIME *lpSystemTime );输入参数lpSystemTime是一个SYSTEMTIME类型的参数,如果设置成功,返回true,本地时间将会变成lpSystemTime所指定的时间,否则返回false。看一下SYSTEMTIME的格式:typedef struct _SYSTE原创 2011-01-04 00:55:00 · 1677 阅读 · 0 评论 -
CreateMutex利用互斥对象实现线程同步实例
CreateMutex利用互斥对象实现线程同步实例 <br /> #include <windows.h><br />#include <iostream.h><br /><br />DWORD WINAPI Fun1Proc(LPVOID lpParameter);<br />DWORD WINAPI Fun2Proc(LPVOID lpParameter);<br /><br />int index=0;<br />int tickets=100;<br />HANDLE hMutex;<br />vo转载 2011-01-01 16:54:00 · 1363 阅读 · 0 评论 -
vc高精度多媒体定时器的使用方法
在VC编程中,用SetTimer可以定义一个定时器,到时间了,就响应OnTimer消息,但这种定时器精度太低了。如果需要精度更高一些的定时器(精确到1ms),可以使用下面的高精度多媒体定时器进行代码优化,可以达到毫秒级的精度,而且使用方便。先要包含头文件"mmsystem.h"和库文件"winmm.lib"。vc高精度多媒体定时器的使用方法如下:复制内容到剪贴板 程序代码#include "mmsystem.h" //head file#pragma comment(lib,"winmm") //lib转载 2010-12-28 08:51:00 · 12697 阅读 · 1 评论 -
WaitForSingleObject的用法
WaitForSingleObject的用法<br /> <br />WaitForSingleObject的用法DWORDWaitForSingleObject(<br /> HANDLEhHandle,<br /> DWORDdwMilliseconds<br /> );<br /> <br />参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果时间是有信号状态返回WAIT_OBJECT_0,如果时间超过dwMilliseconds值但时间事件还是无信号状转载 2010-12-26 23:58:00 · 687 阅读 · 0 评论 -
关于volatile关键字的说明以及测试
关于volatile关键字的说明以及测试<br />volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如<br />操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行<br />优化,从而可以提供对特殊地址的稳定访问。<br />使用该关键字的例子如下:<br />int volatile nVint;<br />当要求使用volatile 声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指<br /转载 2010-12-28 08:38:00 · 829 阅读 · 0 评论 -
外部中止线程
外部中止线程发表:不详 阅读:793次 关键字: 字体:[大中小] <br /> 问:我有一个对话框,里面显示了一系列在一目录中可用的文件,我想当目录的内容有所 变化时,对话框也能发生相应的变化,这需要从别的线程实现这个要求,但怎样才能使该 线程能在对话框退出时同时关闭?答:你可以做下面的一件事情就可以实现.-在对话框中调用TerminateThread(handle, exitcode). -使用信号量,当你想关闭线程时只需检查该标志罢了. -在线程中使用消息循环转载 2010-12-27 00:09:00 · 728 阅读 · 0 评论 -
等待线程结束
<br />今天在调试一个多线程的程序时一直出问题,具体情况是这样的<br />我在程序的开始执行一个线程,线程一直执行,知道程序结束时才结束,所以我的程序在结束时要等待线程结束再结束自己。<br />正在装载数据……我后来发现了问题,修改后就ok了,我把修改后的大致代码帖出:<br />UINT IsPress(LPVOID lpParam)<br />{<br /> CCapAndRecordDlg * pDlg = NULL;<br /> pDlg = (CCapAndRecordDlg *)lp转载 2010-12-26 23:39:00 · 3017 阅读 · 0 评论 -
如何结束阻塞状态的线程
如何结束阻塞状态的线程(会引起结束程序后进程还在)<br />vc/mfc2009-02-07 16:30:26阅读109评论0 字号:大中小 订阅<br />如果一个线程由于等待某些事件的发生而被阻塞,又该如何实现该线程的中断呢?比如当一个线程由于需要等候键盘输入而被阻塞,处于不可运行状态时,即使主程序中将该线程的共享变量设置为true,但该线程此时根本无法检查循环标志,当然也就无法立即中断。<br />其实,这种情况经常会发生,比如调用Thread.join()方法,或者Thread.slee原创 2011-05-31 07:52:00 · 11101 阅读 · 0 评论