C++
文章平均质量分 75
xiliang_pan
只要去做,没有做不好的事情!
展开
-
ATL及COM线程的学习
COM组件、ATL及COM组件-线程模型(套间)转载 2024-03-21 14:00:40 · 110 阅读 · 0 评论 -
通过注册表以及文件操作的方式获取当前正在实际使用的物理网卡MAC地址
获取MAC地址转载 2024-03-18 14:04:27 · 191 阅读 · 0 评论 -
MFC应用程序中处理消息的顺序以及对话框关闭步骤
应用程序处理消息的过程:1.AfxWndProc() 该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc2.AfxCallWndProc() 该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数3.WindowProc() 该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用DefWindowProc()函数4.OnWndMsg() 该函数的...转载 2021-03-22 15:39:17 · 1266 阅读 · 0 评论 -
CFileDialog 用法
const char szFilter[] = "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||"; CFileDialog cfg(TRUE,NULL,NULL,NULL,szFilter,NULL)原创 2008-03-18 21:43:00 · 625 阅读 · 0 评论 -
vc显示数据大小(将十进制数据转化为Byte KB MB GB)
StrFormatByteSizeConverts a numeric value into a string that represents the number expressed as a size value in bytes, kilobytes, megabyte翻译 2011-09-21 10:25:27 · 1283 阅读 · 0 评论 -
C++开篇
.....原创 2011-09-14 15:36:11 · 420 阅读 · 0 评论 -
C++ 关于访问权限
具体 可以参阅msdn Access Control原创 2011-09-27 13:35:45 · 506 阅读 · 0 评论 -
VC6.0编写在windows7下以管理员权限运行的程序
方法一: manifest文件1.新建一文件命名为 xxx.manifest.内容如下: processorArchitecture="X86" name="xxxx" type="win32"/> level="requireAdministrator"转载 2011-11-21 11:15:46 · 5178 阅读 · 0 评论 -
学习WDK入门及获取相关资料
WDK说明文档http://msdn.microsoft.com/en-us/windows/hardware/gg487428.aspx windows符号表下载地址 http://msdn.microsoft.com/en-us/windows/hardware/gg463028原创 2011-11-03 10:24:20 · 1076 阅读 · 0 评论 -
VC屏蔽Enter和ESC退出程序
重载PreTranslateMessage函数屏蔽回车和ESC的消息:BOOL C***Dlg::PreTranslateMessage(MSG* pMsg) { if(WM_KEYDOWN == pMsg->message ) { UINT nKey = (int) pMsg->wParam; if( VK_RETURN == nKey || VK_ESCAPE == n转载 2011-12-01 14:24:43 · 1338 阅读 · 0 评论 -
CListCtrl控件主要事件及LVN_ITEMCHANGED消息和鼠标双击列表项事件的处理
LVN_BEGINDRAG 鼠标左键正在被触发以便进行拖放操作(当鼠标左键开始拖拽列表视图控件中的项目时产生)LVN_BEGINRDRAG 鼠标右键正在被触发以便进行拖放操作(当鼠标右键开始拖拽列表视图控件中的项目时产生)LVN_BEGINLABELEDIT 开始编辑项的文本LVN_COLUMNCLICK 单击列(当鼠标单击列表视图控件列标题时产生)NM_CLICK 当鼠标单击列表转载 2011-12-01 14:20:31 · 1523 阅读 · 0 评论 -
Windows API编程机理及简单范例
Windows程序的运作本质:以消息为基础,由事件驱动之(Message based,event driven)Windows程序的进行依靠外部发生的事件来驱动。换句话说,程序不断等待(利用一个while回路),等待任何可能的输入,然后做判断,然后再做适当的处理。其中各种“输入”是由操作系统捕捉到之后以消息(一种数据结构)的形式通知程序。接受并处理消息的主角就是窗口。每一个窗口都应该有一个转载 2011-12-01 14:37:37 · 1629 阅读 · 0 评论 -
想看的图书
《天书夜读——从汇编语言到windows内核编程》《寒江独钓——Windows内核安全编程》原创 2011-11-13 09:57:09 · 377 阅读 · 0 评论 -
C++可以这样定义结构体(为成员指定有效位数)
typedef struct{ BYTE identity:1; BYTE type:3; BYTE renew:2; BYTE del:2;}ST_Test;sizeof(ST_Test);// 1 typedef struct{ BYTE identity:1; BYTE type:3; BYTE renew:2; BYTE del:原创 2011-12-06 17:29:41 · 1086 阅读 · 0 评论 -
为CEdit控件设置右键菜单
FARPROC OldEditProc = NULL;LRESULT CALLBACK NewEditProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){ if (uMsg == WM_RBUTTONUP) { CPoint curPoint; GetCursorPos(&curPoint); CMenu M原创 2011-12-06 14:29:05 · 1708 阅读 · 0 评论 -
VC++的Unicode编程(宏UNICODE与_UNICODE)
一、什么是Unicode 先从ASCII说起,ASCII是用来表示英文字符的一种编码规范。每个ASCII字符占用1个字节,因此,ASCII编码可以表示的最大字符数是255(00H—FFH)。其实,英文字符并没有那么多,一般只用前128个(00H—7FH,最高位为0),其中包括了控制字符、数字、大小写字母和其它一些符号。而最高位为1的另128个字符(80H—FFH)被称为“扩展ASCII”,一转载 2011-12-18 12:21:12 · 12874 阅读 · 0 评论 -
C++编程要养成的习惯
(1)支持UNICODE和ASNI,使用宏 _T("")、 L""、TEXT("") 、_TEXT(""),尽量使用同时支持UNICODE和ASNI的函数,如_tcs****;原创 2011-12-18 15:47:45 · 625 阅读 · 0 评论 -
VC右键菜单消息响应处理
LRESULT CXXXDlg::TrayNotify(WPARAM wp,LPARAM lp){ UINT uID = (UINT) wp; UINT uMouseMsg = (UINT) lp; if(uMouseMsg == WM_RBUTTONUP) { CPoint curPoint; GetCursorPos(&curPoint); CMe原创 2011-12-19 10:09:15 · 2479 阅读 · 0 评论 -
(转)ECC加密算法入门介绍
ECC加密算法入门介绍前言 同RSA(Ron Rivest,Adi Shamir,Len Adleman三位天才的名字)一样,ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)也属于公开密钥算法。目前,国内详细介绍ECC的公开文献并不多(反正我没有找到)。有一些简介,也是泛泛而谈,看完后依然理解不了ECC的实质(可能我理解力太差)。前些天我从国外网站转载 2011-12-22 10:31:57 · 3150 阅读 · 0 评论 -
WM_CLOSE WM_DESTROY WM_QUIT 区别
在发送 WM_QUIT消息时,要使用PostMessage发送,否则,窗口已经关闭,但任务管理器中进程还存在。可以通过 pDlg->PostMessage(WM_QUIT);或DWORD dwThreadId = GetWindowThreadProcessId(pDlg->GetSafeHwnd(),NULL);PostThreadMessage(dwThreadId,WM_QUIT转载 2012-01-05 15:51:16 · 15294 阅读 · 0 评论 -
XML解析库
常见XML解析开源库 (C++ )(1)Xerces是由Apache组织所推动的一项XML文档解析开源项目,它目前有多种语言版本包括JAVA、C++、PERL、COM等。而 Xerces C++ 是它的 C++ 语言实现的版本。(2)TinyXml(windows、linux等)。(3)CMarkup。原创 2012-02-22 11:55:59 · 514 阅读 · 0 评论 -
Windows 服务程序
一个程序可能包含若干个服务。每一个服务都必须列于专门的分派表中(一个 SERVICE_TABLE_ENTRY 结构数组)。这个表中的每一项都要在 SERVICE_TABLE_ENTRY 结构之中。它有两个域: lpServiceName: 指向表示服务名称字符串的指针;当定义了多个服务时,那么这个域必须指定; lpServiceProc: 指向服务主函数的指针(服务入口点);转载 2012-02-16 10:13:41 · 435 阅读 · 0 评论 -
关于结构体中最后一个成员为char[1]或char[0]的技巧
这是个广泛使用的常见技巧,常用来构成缓冲区。比起指针,用空数组有这样的优势: 1.不需要初始化,数组名直接就是所在的偏移 2.不占任何空间,指针需要占用int长度空间,空数组不占任何空间。 “这个数组不占用任何内存”,意味着这样的结构节省空间;“该数组的内存地址就和他后面的元素的地址相同”,意味着无需初始化,数组名就是后面元素的地址,直接就能当做指针使用。 这样转载 2012-03-01 10:36:06 · 2067 阅读 · 0 评论 -
C++遍历所有IE浏览器,得到里面的所有元素
转自:http://hi.baidu.com/wuyan3158/blog/item/255eb57ec5c3c2350cd7dafa.html# import // Internet Explorer 5# import #include #include _variant_t v; HRESULT转载 2012-03-06 14:15:57 · 8623 阅读 · 0 评论 -
Vc6.0 调试指南
转自:http://bbs.bccn.net/thread-308527-1-1.html Vc6.0 调试指南 --Happy DebuggingVc6.0 调试指南 --Happy Debugging回去洗个澡,再来完成这项浩大的工程。//Vc6.0下载 http://down.bccn.net/100.html//Visual AssistX //Vc6.0转载 2012-04-03 17:35:49 · 1421 阅读 · 0 评论 -
[windows][thread] 同步.内核.Mutex.Semaphores等
概述 : 非内核对象临界区非常适合于序列化对一个进程中的数据的访问,因为它们的速度很快。但我们或许想要使一些应用程序与计算机中发生的其它特殊事件或者其它进程中执行的操作取得同步。这时临界区无能为力。就需要使用内核对象来同步。 可以使用下列内核对象可用来同步线程: 1. 进程,Processes转载 2012-04-05 10:14:10 · 734 阅读 · 0 评论 -
内存对齐分配策略(含位域模式)
转自:http://www.cnblogs.com/alex-tech/archive/2011/03/24/1993856.html 1:内存对齐定义: 现在使用的计算机中内存空间都是按照字节划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但是实际上计算机系统对于基本数据类型在内存中的存放位置都有限制,要求这些数据存储首地址是某个数K的倍数,这样各种基本数据类转载 2012-04-05 13:09:07 · 358 阅读 · 0 评论 -
内存泄露定位(转载)
今天调试程序,发现有内存泄漏但是没有提示具体是哪一行,搞得我很头疼。结果在网上搜索了一些资料,经自己实践后整理如下: 第一种:通过"OutPut窗口"定位引发内存泄漏的代码(下面转,我写的没原文好,也懒得写)。 我们知道,MFC程序如果检测到存在内存泄漏,退出程序的时候会在调试窗口提醒内存泄漏。例如:class CMyApp : public CWinApp{转载 2012-04-09 09:29:57 · 579 阅读 · 0 评论 -
VC 工程编译链接时查看链接的库的顺序
选择VC菜单Project-> Settings-> Link标签页,然后在Project Options栏中最后输入/verbose:lib,这样就可以在编译链接程序过程中在输出窗口看到链接的顺序了。 搜索顺序: (1) 工程属性link标签中设置的顺序; (2) 添加到工程中的lib文件; (3)#pragma comment(li原创 2012-04-09 09:32:51 · 1548 阅读 · 0 评论 -
DLL中DoModal时崩溃
DLL中弹出对话框:AFX_MAMAGE_STATE(AfxGetStaticModuleState());// 弹出对话框前需要调用这条语句CTestDlg dlg; int rlt = dlg.DoModal(); 可以参考以下:(1)extern "C" __declspec(dllexport) void ShowDlg() {转载 2012-04-10 17:07:48 · 5162 阅读 · 0 评论 -
VC6.0工程属性配置(编译完成后对目标进行处理)
注意:如果文件路径中包含空格,则需要加引号;原创 2012-04-14 10:51:20 · 915 阅读 · 0 评论 -
MFC改变对话框中静态文本的字体大小
VC的对话框字体设置对所有控件都有效,你不能单独地改变某个静态文本的字体。对于你的问题,需要首先用CreateFont来建立一个字体对象,然后调用控件的SetFont,就可以了。例子: 1、改静态文体的ID,如:IDC_STATIC1 2、添加一个Edit控件,建立一个关联的控件m_editControl。 3、在OnInitDialog中添加如下代码: CFont * f转载 2012-05-07 15:50:16 · 5573 阅读 · 0 评论 -
VC编辑框(EDIT)实现的自动换行、自动滚屏 、自动清空
在自动换行设置的时候,要在EDIT控件的属性中选中"multiline"的属性和Auto_HScroll、Vertical scroll。经过多次测试,总结出VC编辑框(EDIT)的自动换行与自动滚屏的方法。方法一: (当EDIT映射到一CString时)m_String = m_String + sNewString + "\r\n" //自动换行(其中m_String是ED转载 2012-05-14 11:08:11 · 20548 阅读 · 0 评论 -
在VC6.0下设置Unicode编译环境 & VC6中调试状态下显示Unicode字符串
VC++ 6.0支持Unicode编程,但默认的是ANSI,所以开发人员只需要稍微改变一下编写代码的习惯便可以轻松编写支持UNICODE的应用程序。 使用VC++6.0进行Unicode编程主要做以下几项工作:1、为工程添加UNICODE和_UNICODE预处理选项。 具体步骤:打开[工程]->[设置…]对话框,在C/C++标签对话框的“预处理程序定义”中去除_MBCS,转载 2012-05-14 11:05:42 · 4511 阅读 · 0 评论 -
c++ 重载 覆盖 隐藏
c++ 重载 覆盖 隐藏的区别和执行方式 成员函数被重载的特征(1)相同的范围(在同一个类中); (2)函数名字相同; (3)参数不同; (4)virtual 关键字可有可无。 覆盖是指派生类函数覆盖基类函数,特征是(1)不同的范围(分别位于派生类与基类); (2)函数名字相同; (3)参数相同; (4)基类函数必须有virtual 关键字。 “隐藏”是转载 2012-06-03 23:03:02 · 726 阅读 · 0 评论 -
生成VC宏展开以及#和##使用
From:http://hi.baidu.com/luckdst/item/b3773444e1197fe3bcf4513c 当定义的宏比较复杂,较难分析时,可以通过一个VC选项控制预处理器将宏展开后的源代码输出到文件,以方便查看,设置方法:在 “工程属性” —〉“C/C++”—〉“Project Options” 手工填入/P,然后rebuild,会产生于.cpp同名的.i文件,在这转载 2012-07-05 15:41:44 · 3814 阅读 · 0 评论 -
How to detect Normal or Large font size settings (DPI)
From:http://www.autohotkey.com/community/viewtopic.php?t=3429 I created a script which uses a GUI, but I had a problem: if the user had the "Large Fonts" set in the Display settings, the GUI would转载 2012-06-28 13:59:03 · 969 阅读 · 0 评论 -
在VC工程中添加多语言支持 (资源DLL)
From:http://www.cnblogs.com/myitm/archive/2011/08/26/2154136.html 随着贸易国际化,在软件开发过程中,常会碰到需在现有中文版软件加入多语言支持的情况。由于不同语言版本间的差别通常仅是软件操作界面的不同,为实现多语言支持,使用纯资源DLL是一个不错的解决之道。所谓纯资源DLL是指只包含资源的DLL,譬如:快捷键、对话框、字符转载 2012-08-02 11:36:39 · 3506 阅读 · 0 评论 -
win7无法打开查看.hlp帮助文件解决办法
Category:电脑|技术 View:289 Author:ifu25 在计算机上运行 Windows Vista、 Windows 7、 Windows Server 2008 中或 Windows Server 2008 R2,您可能无法打开帮助文件 (.hlp) 需要 Windows 帮助 (WinHlp32.exe) 计划的。Microsoft 已停止包括 32 位帮助文件查看器转载 2012-08-29 15:00:39 · 13690 阅读 · 1 评论 -
OnPaint()函数的作用原理
转自:http://www.cnblogs.com/BeyondTechnology/archive/2011/03/25/1995942.htmlOnPaint()函数的作用原理WM_PAINT是窗口每次重绘都会产生的一个消息。 OnPaint是对这个消息的反应函数mfc 的 CWnd::OnPaint 没做什么,只是丢给系统处理。一 :转载 2012-08-20 11:33:25 · 1149 阅读 · 0 评论