![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
vc
ljuncong
做简单的事,并且始终如一。
展开
-
句柄的本质
介绍句柄前,先介绍指针。或许你知道,指针的内容就是一个内存地址 ,通过指针的值,能找出所指向地址中的内容。但很容易忽略的一点是:这个“内存地址”并不是真正的内存地址,而是经过操作系统映射过的。做个实验,用VC分别创建两个工程,在工程一中创建一个整型指针 int *p1 = 123; watch窗口看到这个p1 的值为0x00d30000 ;调试工程二, 打开view->Debug原创 2007-09-06 17:41:00 · 750 阅读 · 0 评论 -
如何用代码安装驱动程序
最近公司的项目要求在软件中打包一个硬件设备的USB驱动程序,即在没有连接硬件的情况下安装驱动程序。微软的WDK有提供API实现这个功能。所以,需要先下载WDK。WDK下载地址:http://www.microsoft.com/download/en/details.aspx?原创 2011-09-01 14:15:56 · 2364 阅读 · 0 评论 -
VC++ 项目设置中的【生成后事件】设置
【配置属性】——>【生成事件】——>【生成后事件】中的命令行command line 设置的作用很方便使用链接库的项目,比如一个项目依赖于另一个项目的生成文件dll LIB 等文件,那么可以在另一个项目编译成功后把文件拷贝到指定的目录。 给例子:set COPYCMD=/Yech原创 2011-07-20 16:04:09 · 2986 阅读 · 0 评论 -
如何隐藏CPropertySheet 上的分隔线
最近公司的一个项目需要用到CPropertySheet ,UI设计很漂亮,没有CPropertySheet 独有的分隔线。CPropertySheet 没有提供直接的函数或属性来隐藏分割线。经过一番研究,分割线是CStatic类型,可以利用函数ChildWindowFromPo原创 2011-07-15 17:42:14 · 960 阅读 · 0 评论 -
插入排序的快捷实现
插入排序是最简单最直观的排序算法了,它的依据是:遍历到第N个元素的时候前面的N-1个元素已经是排序好的了,那么就查找前面的N-1个元素把这第N个元素放在合适的位置,如此下去直到遍历完序列的元素为止. 插入排序是最简单最直观的排序算法了,它的依据是:遍历到第N个元素的时候前面的N-1个元素已经是排序好的了,那么就查找前面的N-1个元素把这第N个元素放在合适的位置,如此下去直到遍历完序列的元素为止转载 2010-01-07 22:38:00 · 553 阅读 · 0 评论 -
error LNK2001: 无法解析的外部符号 _IID_IMAPIProp
解决办法:#define USES_IID_IMAPIProp#define INITGUID #include #include "mapidefsex.h" #include "mapiguid.h"原创 2008-04-28 13:22:00 · 1152 阅读 · 0 评论 -
WINDOWS.H already included. MFC apps must not #include
呵呵......超级郁闷的问题。。。搞了一个晚上,,,,唉。。。。。某些头文件重复定义了 _WINDOWS_所以使用如下代码:#ifdef _WINDOWS_#undef _WINDOWS_#endif如果还不行,就换一下位置,一定在某两个include 文件 之间的。原创 2008-04-17 20:24:00 · 2905 阅读 · 0 评论 -
BitBlt为何不能copy图像
有个朋友问我,BitBlt的SRCCOPY应该就是复制源DC上的 内容到目的DC上,可为什么在OnPaint里面试,只是一部分? 其实, MSDN对BitBlt的介绍不够全面,BitBlt还要考虑ClipBox区域的,只有ClipBox区域的内容才能Copy,ClipBox之外的是透明的. 另外,OnPaint()中的CPaintDC dc(this); 此dc的ClipBox是更新的区域,可原创 2008-01-08 10:19:00 · 1800 阅读 · 0 评论 -
取出屏幕上某个像素的颜色值
为了取出屏幕上某点像素的颜色,常常使用GDI函数GetPixel, 其原形如下:COLORREF GetPixel( HDC hdc, // handle to DC int nXPos, // x-coordinate of pixel int nYPos // y-coordinate of pixel); GetPixel的效率并不高,如果频繁地使用将原创 2008-03-24 11:20:00 · 5680 阅读 · 0 评论 -
VS.NET 2003代码编辑出现"没有可用的附加信息"
VS.NET2003 可以自动列出一个类的成员函数,但有时候不行, 这个可能是Microsoft的bug了.解决办法是删除*.suo 文件,再重新打开工程即可.另外,发现如下一个有趣的现象: Graphics g(hdc); GraphicsPath path; Point pts[] = {Point(0, 0), Point(2, 2), Po原创 2007-12-17 14:46:00 · 2177 阅读 · 1 评论 -
比较软件的版本号函数
比较软件的版本号函数,版本号的形式为3..0.2.1 支持无限位。 /*++Routine Description: 1.比较版本号, 递归实现History: 13-November-2007 13:42 - 刘峻聪 - Create--*/BOOL CUpdateFun::IsNewVersion(CString strOldVersion, CString str原创 2007-11-15 11:09:00 · 2798 阅读 · 0 评论 -
让软件在退出的时候自动执行函数 -- atexit()
atexit()用于注册一个函数,告诉操作系统在在软件退出的时候, 执行这个被注册的函数.注册的函数原型是 void fn(void) , 即没有输入参数,没有返回值.* ATEXIT.C: This program pushes four functions onto * the stack of functions to be executed when atexit * is cal原创 2007-09-13 14:46:00 · 783 阅读 · 0 评论 -
变参函数设计
变参函数的应用得比较少.输出log信息功能的函数演常会用到变参函数.什么是变参函数? 比如 printf("个数:%d, 总数:%d", a, b); printf就是变参函数, 因为其参数的个数不是固定的.变参函数一般用到下列宏: va_arg Retrieve argument from l原创 2007-09-07 14:41:00 · 780 阅读 · 0 评论 -
INF驱动工具
目前很多USB设备的驱动包不是exe的形式,而是以包含inf 文件的驱动包提供给使用者,并且需要在硬件链接到电脑的情况下才能安装驱动;另外,windows没有提供完全卸载驱动的功能,即通过设备管理器的卸载驱动功能,驱动包依然存留在windows中。 而通过软件【INF驱动工具】则可以完全解决如上问题,而且使用简单,纯绿色的软件。【INF驱动工具】提供了在硬件不链接到电脑的情况安装I原创 2011-12-02 16:52:53 · 4020 阅读 · 0 评论