自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(117)
  • 资源 (8)
  • 收藏
  • 关注

原创 文本输出,取自《Windows程序设计》

/*------------------------------------------------------------------ SYSMETS1.C -- System Metrics Display Program No. 1 (c) Charles Petzold, 1998 ----------

2014-05-13 14:54:26 884

原创 字体的字符大小

字符大小要用TextOut显示多行文字,就必须确定字体的字符大小,可以根据字符的高度来定位字符的后续行,以及根据字符的宽度来定位字符的后续列。系统字体的字符高度和平均宽度是多少?这个问题取决于视讯显示器的图素大小。Windows需要的最小显示大小是640×480,但是许多使用者更喜欢800×600或1024×768的显示大小。另外,对于这些较大的显示尺寸,Windows允许使用者选择不同

2014-05-12 17:42:24 2104

原创 获取设备环境句柄的方法

取得设备内容句柄:方法一在处理WM_PAINT消息时,使用这种方法。它涉及BeginPaint和EndPaint两个函数,这两个函数需要窗口句柄(作为参数传给窗口消息处理程序)和PAINTSTRUCT结构的变量(在WINUSER.H表头文件中定义)的地址为参数。Windows程序写作者通常把这一结构变量命名为ps并且在窗口消息处理程序中定义它:PAINTSTRUCT ps ;

2014-05-12 17:13:09 2623

转载 c++ 时间类型详解 time_t

Unix时间戳(Unix timestamp),或称Unix时间(Unix time)、POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数。Unix时间戳不仅被使用在Unix 系统、类Unix系统中,也在许多其他操作系统中被广告采用。目前相当一部分操作系统使用32位二进制数字表示时间。此类系统的Uni

2014-05-08 15:55:03 592

原创 根据位值来计算权限

CIE_DOCUMENT_ACE_SCAN = 1, // 文档的Read权(浏览) CIE_DOCUMENT_ACE_UPDATE = 2, // 更新 CIE_DOCUMENT_ACE_DOWNLOAD = 4, // 下载权 CIE_DOCUMENT_ACE_NEW = 8, // 创建 CIE_DOCUMENT_ACE_DELETE = 16, // 删除 CI

2014-05-06 16:57:58 816

转载 VC++ 中 CToolTipCtrl 应用

CToolTipCtrlclass CEmisDrawView : public CScrollView{protected: // create from serialization only    CEmisDrawView();    DECLARE_DYNCREATE(CEmisDrawView)        CToolTipCtrl  m_ToolTip

2014-05-05 11:45:38 1236

原创 MFC窗口初始化打开时窗口大小的设定

在UI资源视图中,拉长或伸缩chuan

2014-04-30 15:00:16 3206

转载 unicode utf-8 gb2312编码 使用C++相互转换的代码

windows开发环境下用VC++6.0 对unicode 、utf-8、 gb2312 三种编码格式之间的转换方法:

2014-04-23 11:55:18 716

转载 STL-容器间的复制list&vector

#include #include #include #include int main(){ //copy list to list std::list oldList; std::list newList; oldList.push_back("test1"); oldList.push_back("test2"); oldList.push_back("test3")

2014-04-23 11:53:49 464

转载 使用Depends工具查看DLL接口

1、DLL的查看与调试Windows操作系统的核心功能是采用模块的方式实现的。它将各种相关功能放置在同一DLL模块中。因此,每个应用程序都会调用相关的系统的或用户自定义的DLL。因此,在编写程序时,就必须掌握DLL的查看和调试的方法。22.5.1  使用Depends工具查看DLL接口VC 6.0提供了查看DLL接口的工具--Depends。调用方法是选择"开始"|"所有程

2014-04-23 11:24:58 12158

原创 C++ 访问http接口

int GetURLInternal(LPCSTR lpszUrl, std::string& content){ int result = -1; HINTERNET hSession = InternetOpenA(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); if (NULL != hSession) { HINTERNET

2014-04-22 13:39:22 10933 1

转载 Windows核心编程☞等待函数

原文:两个等待函数 一个单线程,一个多线程。等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为已通知状态为止。(FangSH注:如果内核对象没有变为通知即线程永远等待下去。)这些等待函数中最常用的是WaitForSingleObject :DWORD WaitForSingleObject(HANDLEhObject, DWORD dwMillisec

2014-04-17 17:11:20 628

转载 关键代码段

关键代码段是指一个小代码段,在代码能够执行前,它必须独占对某些共享资源的访问权。这是让若干行代码能够“以原子操作方式”来使用资源的一种方法。所谓原子操作方式,是指该代码知道没有别的线程要访问该资源。当然,系统仍然能够抑制你的线程的运行,而抢先安排其他线程的运行。不过,在线程退出关键代码段之前,系统将不给想要访问相同资源的其他任何线程进行调度。下面是个有问题的代码,它显示了不使用关键代码段会发生

2014-04-17 16:02:37 3120

转载 windows命令大全

winver---------检查Windows版本 wmimgmt.msc----打开windows管理体系结构(WMI) wupdmgr--------windows更新程序 wscrīpt--------windows脚本宿主设置 write----------写字板 winmsd---------系统信息 wiaacmgr-------扫描仪

2014-04-17 14:58:16 549

转载 C++用new和不用new创建类对象区别

起初刚学C++时,很不习惯用new,后来看老外的程序,发现几乎都是使用new,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用new的确会带来很多问题。当然这都是跟new的用法有关的。new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似乎更加高

2014-04-17 09:24:15 483

转载 静态加载dll和动态加载dll

一,首先编写DLL (建win32空DLL工程)头文件.h extern "C" _declspec(dllexport) int Max(int a, int b);         //extern "C"解决函数名由于不同编译器造成的名字匹配问题,通常c++编译器编译时会对函数进行改名,而c编译器不会extern "C" _declspec(dllexport)

2014-04-16 13:07:26 683

原创 vs2010调试dll文件

1,编写调试程序,动态加载dll1,dll工程设置为启动工程

2014-04-15 14:49:34 1049

转载 gsoap使用

下载gSoaphttp://sourceforge.net/projects/gsoap21.下载完成后直接解压缩,在目录gsoap-2.8\gsoap\bin下面有编译工具,支持多个平台,我们使用的是win32平台的工具    wsdl2h.exe  解析WebService的wsdl文件    soapcpp2.exe 编译WebService代码2.接

2014-04-14 17:09:26 510

原创 原子操作

为了解决同步的问题,需要某种比较简单的方法。我们需要一种手段来保证值的递增能够以原子操作方式来进行,也就是不中断地进行。互锁的函数家族提供了我们需要的解决方案。互锁的函数尽管用处很大,而且很容易理解,却有些让人望而生畏,大多数软件开发人员用得很少。所有的函数都能以原子操作方式对一个值进行操作。让我们看一看下面这个I n t e r l o c k e dE x c h a n g e A d

2014-04-11 17:05:44 437

原创 保护视力颜色设置

银河白    #FFFFFF   RGB(255, 255, 255)杏仁黄    #FAF9DE   RGB(250, 249, 222)秋叶褐    #FFF2E2   RGB(255, 242, 226)胭脂红    #FDE6E0   RGB(253, 230, 224)青草绿    #E3EDCD   RGB(227, 237, 205)海天蓝    #DCE2F1 

2014-04-11 16:50:45 815

转载 进程及作业的概念

Linux是一个多用户多任务的操作系统.多用户是指多个用户可以在同一时间使 用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任 务时又执行另一项任务. 操作系统管理多个用户的请求和多个任务.大多数系统都只有一个CPU和一个主 存,但一个系统可能有多个二级存储磁盘和多个输入/输出设备.操作系统管理这些资 源并在多个用户间共享资源,当您提出一个请求时,给您造成一种假象,好

2014-04-09 15:19:08 890

原创 CreateProcess函数

如前所述,创建新进程可使系统建立一个进程内核对象和一个线程内核对象。在创建进程的时候,系统为每个对象赋予一个初始使用计数值1 。然后,在createProcess返回之前,该函数打开进程对象和线程对象,并将每个对象的与进程相关的句柄放入PROCESS_INFORMATION结构的hProcess和hThread 成员中。当CreateProcess 在内部打开这些对象时,每个对象的使用计数就变为2

2014-04-08 15:57:37 828

转载 typedef用法小结

第一、四个用途用途一:定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如:char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针, // 和一个字符变量;以下则可行:typedef char* PCHAR; // 一般用大写PCHAR pa, pb; // 可行,同时声明了两个指向字符变量的指针

2014-04-04 15:03:13 372

原创 根据上次输入操作的时间设置离开状态

typedef struct _tagLASTINPUTINFO { UINT cbSize; DWORD dwTime;} MYLASTINPUTINFO;typedef BOOL (WINAPI*MyGetLastInputInfo)(MYLASTINPUTINFO* plii);MyGetLastInputInfo pfnGetLastInputInfo = NULL;BOOL

2014-04-04 13:38:54 584

转载 SOCKET, TCP/UDP, HTTP, FTP

(一)TCP/UDP,SOCKET,HTTP,FTP简析TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层:网络层:IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:FTP、HTTP、TELNET、SMTP、DNS等协议HTTP是应用层协议,其传输都是被包装成TCP协议传输。可以用SOCKET实现HTTP。SOCK

2014-04-01 15:38:14 568

原创 TCP与UDP实现上的区别

TCP编程的服务器端一般步骤是:   1、创建一个socket,用函数socket();   2、设置socket属性,用函数setsockopt(); * 可选   3、绑定IP地址、端口等信息到socket上,用函数bind();   4、开启监听,用函数listen();   5、接收客户端上来的连接,用函数accept();   6、收发数据,用函数send()和recv(),

2014-04-01 15:05:45 697

转载 Socket通信

因为项目需要,服务端需要一个SOCKET来接收客户端的请求,好吧,没办法度娘哇,结果很多都是linux的例子,功夫不负有心人啊,终于找到个demo,并且客户端代码详尽,记录之,以便以后查看。一、Socket是什么   Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Sock

2014-04-01 14:08:41 558

转载 3.3 跨越进程边界共享内核对象

3.3 跨越进程边界共享内核对象许多情况下,在不同进程中运行的线程需要共享内核对象。下面是为何需要共享的原因: • 文件映射对象使你能够在同一台机器上运行的两个进程之间共享数据块。 • 邮箱和指定的管道使得应用程序能够在连网的不同机器上运行的进程之间发送数据块。 • 互斥对象、信标和事件使得不同进程中的线程能够同步它们的连续运行,这与一个应用程序在完成某项任务时需要将情况通知另一个应用程序的情

2014-03-31 15:37:40 818

转载 3.1 什么是内核对象

第3章 内核对象在介绍Windows API 的时候,首先要讲述内核对象以及它们的句柄。本章将要介绍一些比较抽象的概念,在此并不讨论某个特定内核对象的特性,相 反只是介绍适用于所有内核对象的特性。首先介绍一个比较具体的问题,准确地理解内核对象对于想要成为一名Wi n d o w s 软件开发能手的人来说是至关重要的。内核对象可以供系统和 应用程序使用来管理各种各样的资源,比如进程、线程和文

2014-03-31 15:11:19 522

转载 windows编程经典书籍

原文:http://blog.csdn.net/dadalan/article/details/3905388Windows编程类Windows 程序设计(第5版)(上、下册)原书名: Programming Windows (Fifth Edition) 原出版社:Microsoft Press作者:(美)Charles Petzold译者:北京博彦科技发展有限责任公

2014-03-28 15:30:44 626

转载 mfc与win32区别

MFC就是 微软给你包装了的库,提供了很多扩展功能,以及高级功能,这样方便你使用,而不是自己从头调用API来实现而API由于是MFC下一层,自然实现更灵活,可以根据你的需要来使用,不会被MFC类库所限制。‍win32和mfc编程的最大不同是win32是编程者自己把消息和响应函数联系在一起。mfc是编程者采用微软为我们做好了MESSAGE-MAP机制,来处理消息。--------------

2014-03-17 14:53:54 1205

原创 从完整路径中获取文件名

int nPos; CString strFileName; nPos = strFilePath.ReverseFind( '\\' ); if ( nPos < 0 ) strFileName = strFilePath; else strFileName = strFilePath.Mid( nPos + 1 );

2014-03-07 14:22:17 3702

转载 MFC - 从屏幕右下角升起的弹窗

原地址:http://blog.csdn.net/wjn1206/article/details/8085781// 在OnInitDialog()中添加// 示例// 获得桌面大小CRect rectWorkArea;SystemParametersInfo(SPI_GETWORKAREA,0,&rectWorkArea,SPIF_SENDCHANGE); // 获得对话

2014-02-26 14:47:42 1283

转载 vc 用函数读写INI配置文件

vc 用函数读写INI配置文件 ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。一、向ini文件中写入信息的函数

2014-01-23 14:12:38 1061

原创 注册表的读写

写bool SetFileSign( bool bFileSign ){ CRegKey reg; CString strSubKey; strSubKey.Format( _T("%s\\%s"), REG_SUBKEY, REG_SETTING ); if ( ERROR_SUCCESS != reg.Open( HKEY_CURRENT_USER, s

2014-01-20 19:51:52 657

转载 MFC消息映射BEGIN_MESSAGE_MAP详解

原文地址:http://blog.csdn.net/luoti784600/article/details/10070939MFC的消息映射对于对开发者处理消息可谓十分方便。MFC类继承众多,虚函数表占内存大导致微软直接不采用虚函数方式。发现《VC++深入详解》只大概说了消息映射的原理,没有详细介绍其实现,所以写篇小文章探究下。一、首先在使用消息映射之前,必须先声明

2014-01-07 16:29:19 6116

转载 消息映射

原文地址:http://www.cnblogs.com/chengtulang/archive/2013/07/10.html一、消息映射表AFX_MSGMAP_ENTRY结构表示消息映射表中的一个消息映射项,将消息与处理该消息的成员关联起来。struct AFX_MSGMAP_ENTRY{UINT nMessage; //消息标志UINT nCode; /

2014-01-07 16:18:38 651

转载 PostMessage和SendMessage用法与区别

1、SendMessage与PostMessage的区别:      先来看看Send与Post这两个英文单词的意思:Send有发送的意思,而Post具有投寄的意思。      联想一下现实生活中我们写信(很久很久以前。。。。)来记就很简单了:      Send:  相当于邮寄员,他会将快件亲手交给收件人,并且需要收件人签字,他才闪人。而在消息机制中,就是说,系统(邮寄员)会将收到的

2014-01-07 13:06:49 1186

转载 C++中回车换行(\n\r)和换行(\r)的区别

原文地址:http://blog.csdn.net/xiaofei2010/article/details/8458605windows下的点一下回车,效果是:回车换行,就是\r\nunix系统下的回车一下就是一个\n给出如下代码:[cpp] view plaincopyprint?#include   using n

2013-12-23 14:59:33 901

原创 sizeof(CString)的长度

CString是个类,你如果对他取sizeof那么就是对类取sizeof,他里面有一个指针成员,所以好像是4

2013-12-20 10:17:43 3715

10人以下小团队管理手册.pdf

10人以下小团队管理手册,非常实用的管理小册子,适合初任主管阅读。

2019-07-09

vs2010+mfc的项目打包步骤

项目打包,环境是VS2010 MFC工程项目打包具体步骤,以及VS2010的常用操作

2013-12-13

expat解析XML文件

使用expat解析器解析XML文件,并显示在树控件。

2013-12-10

敏感词管理及过滤

MFC程序,实现对敏感词的管理,包括增删改,以及敏感词的过滤。

2013-12-10

MFC类库详解.chm

MFC 类库chm版使用方便快捷好用,适合程序员的开发

2013-10-06

使用timyxml解析xml文件,并显示在树控件,然后读取树控件内容再保存到xml文件

#############实现功能################# 1,从ORG.XML文件中载入属性名为NAME的属性值 2,将属性值链接到树控件CTREECTRL上 3,再将树控件上的各数据保存至1.xml文件中 4,使用开源xml解析库,即tinyxml

2013-09-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除