VC
文章平均质量分 59
feidegengao
这个作者很懒,什么都没留下…
展开
-
用户模式与内核模式
从用户模式到内核模式首先了解一下用户模式和内核模式。一般说来,进程既可在用户模式下运行,又可在内核模式下运行。内核模式的权限高于用户模式的权限。进程每次调用一个系统调用时,进程的运行方式都发生变化:从用户模式切换到内核模式,然后继续执行。可见:一个进程在CPU上运行可以有两种运行模式(进程状态):用户模式和内核模式。如果当前运行的是用户程序(用户代码),那么对应进程就处转载 2012-11-30 09:27:45 · 1543 阅读 · 0 评论 -
VS 和 VAssistX 常用快捷键
函数跳转----------------------------------------------------------------Alt + G - 函数定义和声明的跳转F12 - 转到所调用函数或变量的定义Alt + O - 在.h与.cpp文件中实现相互转换Alt + M - 列出当前文件所有的函数Ctrl + Tab - 切换标签--------转载 2013-02-18 10:38:26 · 447 阅读 · 0 评论 -
Windows界面编程第一篇 位图背景与位图画刷
本文配套程序下载地址为:http://download.csdn.net/download/morewindows/4947377转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8451629本系列主要讲解Windows界面编程,目前列出五篇,欢迎大家交流讨论。1. 《Windows界面编程转载 2013-02-20 12:35:49 · 384 阅读 · 0 评论 -
[MFC]选择目录对话框和选择文件对话框
在MFC编程中经常会需要用到选择目录和选择文件的界面,以下总结一下本人常用的这两种对话框的生成方法:选择目录对话框//选择目录按钮void CDcPackerDlg::OnBnClickedDecgen() { char szPath[MAX_PATH]; //存放选择的目录路径 CString str; ZeroMem转载 2013-02-26 16:49:42 · 516 阅读 · 0 评论 -
使用OnCtlColor函数消息打造背景
在MFC类库提供了CWnd::OnCtlColor函数,在工作框架的子窗口被重画时将调用该成员函数.因此可以重载WM_CTLCOLOR消息的响应函数.此函数的原型: afx_msg HBRUSH OnCtlColor(CDC *pDC,CWnd *pWnd,UINT nCtlColor);参数nCtlColor用于指定控件的类型,可以是:转载 2013-03-11 13:33:16 · 855 阅读 · 0 评论 -
MFC树控件父Item与子Item的checkbox的联动
首先为树控件添加NM_CLICK消息,然后在消息响应函数加上下面代码即可void CDlgFitleFile::OnClickTreeFiletype(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here CPoint pt; UINT原创 2013-02-27 13:42:29 · 2453 阅读 · 0 评论 -
GetMessage以及消息循环说明
GetMessage以及消息循环说明在创建窗口、显示窗口、更新窗口后,我们需要编写一个消息循环,不断地从消息队列中取出消息,并进行响应。要从消息队列中取出消息,我们需要调用GetMessage()函数,该函数的原型声明如下:在创建窗口、显示窗口、更新窗口后,我们需要编写一个消息循环,不断地从消息队列中取出消息,并进行响应。要从消息队列中取出消息,我们需要调用GetMessage()转载 2013-11-04 22:16:24 · 11466 阅读 · 2 评论 -
CMFCShellTreeCtrl和CMFCShellListCtrl快速构建资源管理器
原文链接系统环境:Windows 7软件环境:Visual Studio 2008 SP1本次目的:实现CMFCShellTreeCtrl(CBCGPShellTree )和CMFCShellListCtrl(CBCGPShellList )快速构建资源管理器 在VS2008SP1以后的版本都可以快速的建立一个类似资源管理器的工程,或者也可以利用BCG第三库,转载 2013-11-07 13:01:51 · 1171 阅读 · 0 评论 -
理解预编译头
所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。一、预编译头文件说明所谓头文件预编译,就是把一个工程(Project)中使用的一些MFC标准头文件(如Windows.H、Afxwin.H)预先编译,以后该工程转载 2013-11-08 09:28:19 · 846 阅读 · 0 评论 -
windows消息分流器
原文链接很好理解,windows操作系统使用消息处理机制,那么,我们所设计的程序如何才能分辨和处理系统中的各种消息呢?这就是消息分流器的作用.简单来说,消息分流器就是一段代码,在我的讲述中,将分7重来循序渐进的介绍它.从最初的第1重到最成熟的第7重,它的样子会有很大的变化.但,实现的功能都是一样的,所不同的,仅仅是变得更加简练罢了.程序开始时候,会是main函数,然后会转载 2013-11-24 15:31:37 · 705 阅读 · 0 评论 -
子类化
如果你曾经在 Windows 环境下编过程序,有时候就会发现:有一个现成的窗口,几乎有你所需要的全部功能,但还不完全一样。如果你需要一个具有过滤特殊字符功能的 Edit 控件。当然最直接的方法就是自己用代码来实现,但这的确是一个费时又很困难的任务,而子类化就可以用来做这种事情。目 录1子类化2说明1子类化转载 2013-11-24 15:32:04 · 766 阅读 · 0 评论 -
移动存储安全
原文链接当你的U盘,移动硬盘遗失了,被盗了,或者是遗忘在公共场所,里面的资料就会完全被别人窥探,如果涉及一些隐私,机密,那后果是很严重的。本课题就是在这样一个情况下产生的。这里剖析的只是一个最初的演示原型,详细设计,以及一些细节可以参考源代码。源代码在WinXP,VC6.0编译通过。1、访问注册表读取计算机上的移动存储设备在注册表1.HKEY_LOCAL转载 2013-11-26 15:29:02 · 952 阅读 · 0 评论 -
PE文件格式详解(上)
Windows NT 3.1引入了一种名为PE文件格式的新可执行文件格式。PE文件格式的规范包含在了MSDN的CD中(Specs and Strategy, Specifications, Windows NT File Format Specifications),但是它非常之晦涩。 然而这一的文档并未提供足够的信息,所以开发者们无法很好地弄懂PE格式。本文旨在解决这一问题,它会对整个转载 2013-11-26 16:00:09 · 6375 阅读 · 0 评论 -
PE文件格式详解(下)
预定义段 一个Windows NT的应用程序典型地拥有9个预定义段,它们是.text、.bss、.rdata、.data、.rsrc、.edata、.idata、.pdata和.debug。一些应用程序不需要所有的这些段,同样还有一些应用程序为了自己特殊的需要而定义了更多的段。这种做法与MS-DOS和Windows 3.1中的代码段和数据段相似。事实上,应用程序定义一个独特的段的方法是使转载 2013-11-26 16:02:29 · 13079 阅读 · 0 评论 -
GetWindowLong函数(最好的解释资料,绝对值得一看,此函数在子类化技巧时候经常用到)
原文链接今天在看一个代码里头写了GetWindowLong (hwnd, 0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第2个参数为0是指什么,MD,很恼火,最近终于在一个国外网站找到,我在这篇文章贴了,网站是http://www.codeguru.com/forum/archive/index.php/t-243778.html先收集所有关于此函数的使用方法以及转载 2013-01-22 12:45:53 · 2243 阅读 · 0 评论 -
SQLite在VC下的使用
一. 准备工作:(1)在SQLite的官方网站下载Windows平台下的3.5.0版本的SQLite, 下载地址:http://www.sqlite.org/sqlitedll-3_5_0.zip 压缩文件中包含了sqlite3.dll和sqlite3.def文件. 用LIB命令生成用于连接(LINK)使用的lib文件:LIB /DEF:sqlite3.def /machine:IX86转载 2013-01-17 10:31:43 · 678 阅读 · 0 评论 -
VC++获取文件大小集锦
方法一: WIN32_FIND_DATA fileInfo; HANDLE hFind; DWORD fileSize; const char *fileName = 文件的路径及名字; hFind = FindFirstFile(fileName ,&fileInfo); if(hFind != INVALID_HANDLE_VALUE) fileSize = fileInfo.转载 2012-11-30 09:28:48 · 7231 阅读 · 0 评论 -
为什么CreateThread()调用创建线程时,系统设置线程内核对象的引用计数为1,在Create函数返回前是2
CreateThread()调用创建线程时,系统设置线程内核对象的引用计数为1,在Create函数返回前,将会打开线程句柄,所以线程的内核对象引用计数+1。creating a new process causes the system to create a process kernel object and a thread kernel object. At creation t原创 2012-12-05 20:17:04 · 896 阅读 · 0 评论 -
线程的状态转换
一个线程创建之后,总是处于其生命周期的4个状态之一中。线程的状态表明此线 程当前正在进行的活动,而线程的状态是可以通过程序来进行控制的,就是说,可以对线程 进行操作来改变状态。这些操作包括启动(start)、终止(stop)、睡眠(sleep)、挂起 (suspend)、恢复(resume)、等待(wait)和通知(notify)。每一个操作都对应了一个方法,这些 方法是由软件包java.la转载 2012-12-06 11:26:36 · 467 阅读 · 0 评论 -
win7系统中HANDLE ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, id)失败
在win7系统中调用OpenProcess(PROCESS_ALL_ACCESS, FALSE, id)可能失败,主要原因就是Win7安全性相对WinXP更高。所以我们必须在控制面板设置系统安全。把安全性降到最低!原创 2012-12-27 15:19:01 · 2819 阅读 · 0 评论 -
MFC进度条编程控制
1. 进度条的主要功能 进度条控制(Progress Control)主要用来进行数据读写、文件拷贝和磁盘格式等操作时的工作进度提示情况,如安装程序等,伴随工作进度的进展,进度条的矩形区域从左到右利用当前活动窗口标题条的颜色来不断填充。 进度条控制在MFC类库中的封装类为CProgressCtrl,通常仅作为输出类控制,所以其操作主要是设置进度条的范围和当前位置,并不断地更新当前位置。进度转载 2012-12-14 18:55:24 · 13481 阅读 · 1 评论 -
Notepad++在vs2010下编译运行
最近想找一个开源软件代码来看看,突然发现notepad++是用c++写的,因此下载下来看看源码。具体步骤如下:1. http://notepad-plus-plus.org/ 下载最新版本的源代码 npp.6.1.5.src.7z 解压后有两个目录 npp.6.1.5.src\scintilla npp.6.1.5.src\ PowerEdi转载 2012-12-28 14:54:22 · 1145 阅读 · 0 评论 -
vs2010 Help Library 重装
运行“管理帮助设置”时提示:为帮助内容存储区指定的位置无效或者您无权访问该位置。问题描述:这大多是由于不小心把帮助文档给删了,这样删除帮助文档的配置从新指定下吧解决方案:打开注册表,定位到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Help,删除help下的子项“LocalStore”。不用重启vs接下来点“开始 -> 程序 -> Microsoft V转载 2012-12-21 09:41:01 · 732 阅读 · 0 评论 -
MFC 多线程总结
(一) MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程。二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息队列和消息循环。 工作者线程没有消息机制,通常用来执行后台计算和维护任务,如冗长的计算过程,打印机的后台打印等。用户界面线程一般用于处理独立于其他线程执行之外 的用户输入,响应用户及系统所产生转载 2013-01-05 11:39:43 · 789 阅读 · 0 评论 -
完成端口(CompletionPort)详解 - 手把手教你玩转网络编程系列之三
手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ----- By PiggyXP(小猪)前 言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,转载 2013-01-04 20:04:30 · 772 阅读 · 0 评论 -
GetAsyncKeyState()用法
1)if(GetAsyncKeyState(VK_LSHIFT))这样写是不对的。GetAsyncKeyState的返回值表示两个内容,一个是最高位bit的值,代表这个键是否被按下,一个是最低位bit的值,代表在上次调用GetAsyncKeyState后,这个键是否被按下。应该是if(GetAsyncKeyState(VK_LSHIFT)&&ox8000) (2)SHORT Get转载 2013-01-22 10:54:52 · 47085 阅读 · 2 评论 -
RegEnumValue的使用方法
DWORD wStrSize = 512; CString strValue; TCHAR *wStr = new TCHAR[wStrSize]; DWORD dwCountOfSubKey; DWORD dwCountOfValue; DWORD dwType; LONG lResult; CRegKey regKey; regKey.Open(HKEY_CURRENT_US原创 2013-01-08 14:36:21 · 9982 阅读 · 0 评论 -
使用 CHttpConnection,CHttpFile引起内存泄漏
delete是释放资源 close是关闭资源只不过为了方便,有些close后,会自动地进行delete, 如:FILE *file;....fclose(file); // fclose内部会进行free(file)CHttpFile应该是要手动地Delete()吧,要不然会有内存泄漏的原创 2013-01-15 14:36:29 · 1043 阅读 · 0 评论 -
带有历史信息的ComboBox
#pragma once#include #define MAXSTRSIZE 1500 //"值"字符串的最大长度#define MAXVALUE 10 //注册表保留最大的历史记录数目, 最好设置为1-25之间class CHisInfoComboBox : public CComboBox{ DECLARE_DYNAMIC(CHisInfoComboBo原创 2013-01-17 10:06:08 · 840 阅读 · 0 评论 -
如何简单实现可执行文件的自我删除
可执行文件即 EXE 文件在运行过程中,由系统管理其打开的句柄。此时对该文件的一些操作是被系统禁止的,比如删除操作。然而在某些场合,可能须要程序有自我删除的功能,也就是程序运行结束后删除自身。基于这个想法,可以有一种很简单的方法来实现这个基本功能。本方法基于两点来实现删除功能。一是利用 windows 的 command program 的删除文件操作;再者就是启动新的进程来执行这个删除操转载 2013-11-26 15:41:04 · 3250 阅读 · 0 评论