自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 C++ I/O流

basic_streambuf 提供基本的缓存处理功能,其它I/O模板类,是它的友元类,利用它提供的底层读写功能。ios_base 提供基本的读写格式设置,读写状态和错误检测功能,是一个非模板类。basic_ios 提供基本的字符数据输入输出处理。basic_istream / basic_ostream 提供确切的数据流读写功能

2013-08-14 14:39:06 537

原创 线程钩子

——.dllvoid SetKebordHook(){ DWORD dwError = 0 ; MyLogs(_T("安装钩子")); HWND hWnd; while(TRUE) { hWnd = ::FindWindow(NULL, _T("HookTarget")); if (NULL != hWnd) { MyLogs(_T("找到窗口"));

2013-08-06 17:33:35 543

转载 挂起进程内所有线程

void CMFCTestDlg::SuspentProcess(DWORD dwProcessID, bool fSuspend){ HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, dwProcessID); THREADENTRY32 te = { 0 }; te.dwSize = sizeof(te);

2013-08-05 14:39:59 593

原创 COM学习笔记——基础

一 组件基础 1. 软件开发的阶段 1.1 结构话编程 采用自顶向下的编程方式,划分模块和功能的一种编程方式。 1.2 面向对象编程 采用对象的方式,将程序抽象成类,模拟现实世界,采用继承/多态的方式设计软件的一种编程方式。 1.3 组件编程 将功能和数据封装成二进制代码,采用搭积木的方式实现软件的一种编程方式。 2. 组件和有点 2.1 组

2013-08-01 17:08:47 690

原创 MFC学习笔记——菜单,工具栏

1. 菜单相关类CMenu

2013-07-31 11:58:15 540

原创 MFC学习笔记——消息映射

一 消息映射 1.消息映射的添加 1.1 在FrameWnd添加消息宏定义 DECLEARE_MESSAGE_MAP 1.2 添加消息宏实现 BEGIN_MESSAGE_MAP(theClass, parentClass) END_MESSAGE_MAP() 1.3 添加消息处理函数 1.4

2013-07-30 14:55:07 485

原创 MFC学习笔记——基础

一 MFC应用程序1. MFC 的控制台程序1.1 包含afx系列的头文件1.2 CWinApp theApp- MFC的应用程序类,封装了应用程序的启动过程。1.3 AfxWinInit- MFC初始化函数,将应用程序的信息初始化。2. MFC 的动态库和静态库2.1 静态库—— 增加了MFC的支持2.2 动态库2.2.1 MFC规则DLL使用MFC静

2013-07-22 09:38:22 653

原创 Win32学习笔记——线程

一 Windows线程 1. Windows线程 Windows进程中可以执行代码的实体,Windows系统中可以调度的代码。 系统可以调度的执行代码,一个进程中至少有一个或多个线程。 2. 线程的特点 2.1  每个线程都有一个ID。 2.2 每个线程都有自己的安全属性。 2.3 每个线程有自己的一个栈。 3. 进程和线程多任务 多进程实现的多任务

2013-07-19 17:29:04 657

原创 Win32学习笔记——进程

一 Windows进程 1. Windows进程 进程一个容器,包含了应用程序实例的各种资源。Windows多任务操作系统,因此可以同时执行多个进程。 2. Windows进程的一些特点 2.1 进程中包含了执行代码等资源。 2.2 进程都具有私有的地址空间。 2.3 每个进程都有一个ID,表示进程。 2.4 每个进程都有自己的安全属性。 2.5 至少要

2013-07-18 15:32:08 629

原创 Windows的内存管理

一 地址空间 1. 地址空间 一个程序最大的寻址范围。对于Win32操作系统,最大的寻址范围为2的32次方。 2. 地址空间的划分 2.1 用户空间  地址范围:0 - 0x7FFFFFFF(2G) 运行应用程序的代码、数据等。 2.1.1 空指针区(NULL 区) 地址范围 0 - 0x0000FFFF 2.1.2 用户区

2013-07-17 17:59:13 632

原创 Win32学习笔记——文件系统

一 Windows卷(Volumn) 1. 卷的获取 GetLogicalDrivers 返回一个DWORD值,这个值的没个位代表是否存在相应的卷 GetLogicaDriverStrings 获取一个卷的盘符的字符串。void ShowVolumn(){ //获取系统的位标识 DWORD dwDrivers = GetLogicalDrives() ; printf(

2013-07-16 18:54:51 592

原创 Win32学习笔记——动态库其他

一 动态库中的变量 1. 定义全局变量 2. 导出全局变量 2.1 _declspec(dllexport)导出 2.2 DEF文件导出 在DEF文件的导出列表中增加 g_nValue @1 DATA 3. 导入LIB文件 4. 定义导入变量 需要使用_declspec(dllimport)定义变量 extern _declspec(dllimpor

2013-07-15 19:56:09 613

原创 Win32学习笔记——windows的库

一 静态库1. 静态库的特点1.1 目标程序的归档。1.2 静态库的代码会被嵌入到程序当中。1.3 程序执行时不需要静态库存在。2. C语言静态库2.1 创建静态库创建Win32静态库项目,使用*.c文件文件建立项目。2.2 添加静态库函数2.3 在程序中将静态库导入2.3.1 项目中使用Setting里设置2.3.2 使用关键字 p

2013-07-15 11:21:44 725

原创 Win32学习笔记 —— 子控件

1 子控件 1.1 控件的类型 由Windows系统定义的窗口类型,可以提供相应的功能。 1.2 控件的创建 都可以使用CreateWindow /CreateWindowEx创建,并获取到控件HWND。 创建时每个子控件都要有相应的ID,ID号要不重复。 1.3 控件的消息 子空间和父窗口的交互,都是通过消息完成。 如果子窗口发生变化,子窗口会向父窗口

2013-07-12 15:45:30 824

原创 Win32学习笔记 —— 对话框

1 对话框的分类 无模式对话框 模式对话框2 对话框的使用方式 2.1 对话框的窗口处理函数 2.2 注册窗口(可选) 2.3 创建对话框 2.4 关闭对话框3 对话框资源4 模式对话框的使用 4.1 添加对话框资源 4.2 定义对话框处理函数 4.3 创建对话框 DialogBox  4.4 关闭对话框 EndDialog 4

2013-07-12 10:32:45 535

原创 Win32学习笔记——文字和字体

1 文字的绘制1.1 TextOut1.2 DrawText1.3 ExtTextOut

2013-07-11 17:27:23 891

原创 Win32学习笔记 —— 坐标系和映射模式

1 坐标系 1.1 设备坐标系 设备坐标系以像素为单位,X正方向从左向右,Y正方向从上往下 屏幕坐标系 窗口坐标系 客户区坐标系 1.2 逻辑坐标系 以逻辑单位定义坐标系,绘图过程中使用的坐标基本以逻辑坐标系绘制。 默认情况下和设备坐标系保持一致,但是可以修改。2 映射模式 逻辑坐标系和设备坐标系之间映射关系。 2.1 映射模式的种类

2013-07-11 12:38:51 1301

原创 Win32学习笔记——位图的使用

位图的使用 1. 位图 - 通过保存图像上每个点的颜色,生成相应的位图文件。 光栅图 - 可以理解为图像点阵的保存 矢量图 - 可以理解为绘图命令的保存 2. 位图的使用 2.1 加载位图资源 LoadBitmap 2.2 创建放置位图的DC CreateCompatiableDC 创建一个和指定hDC相匹配的DC(DC中包含的信息一致);

2013-07-11 11:08:26 973

原创 Win32学习笔记——绘图

Windows 绘图1 图形绘制 1.1 图形绘制的方式 获取到绘图句柄,设备描述表(DC),使用相应的API,在设备上绘制图形。 1.2 颜色 RGB三色,每种颜色8位,共24位。 32位颜色:颜色数量24位,多出来的8位表示灰度 16位:颜色数量2的16次方。 Win32下,颜色的定义 COLORREF(DWORD),RGB宏定义颜色 从一个颜色

2013-07-11 09:36:23 642

原创 Win32学习笔记——资源使用

1 资源文件图标、光标、字符串、菜单、加速键、对话框资源、位图资源资源脚本文件 - 扩展名为RC文件。 定义了资源和相关文件等信息资源编译器 - RC.exe2 图标资源 ICON2.1 常用大小:16 X 1632 X 32 48 X 482.2 使用LoadIcon()2.3 系统提供的图标hInstance为空, lpIconName为系统定义的系统图

2013-07-10 22:04:38 641

原创 Win32学习笔记——菜单

1 菜单的使用1.1 菜单的创建菜单创建后,会返回HMENU句柄CreateMenu MENU 菜单CreatePopupMenuPOPUPMENU 弹出式菜单菜单项 每个菜单项都会有一个ID号,可以根据这个ID执行不同的操作AppendMenu 增加菜单项1.2 菜单的命令响应1.2.1 WM_COMMAND消息:当用户点击菜单、按

2013-07-09 16:42:44 612

原创 Win32学习笔记——定时器消息

1 定时器消息 WM_TIMER 按照定时器设置时间段,自动向窗口发送一个定时器消息WM_TIMER。优先级比较低。 精度比较低,毫秒级别。产生时间精度也比较低。2 消息和函数 WM_TIMER —— 消息ID;  wParam 定时器ID;  lParam:定时器的处理函数; SetTimer —— 设置一个定时器 KillTimer —— 结束一个定时器 Timer

2013-07-09 15:15:53 546

原创 Win32学习笔记——鼠标消息

一 鼠标消息 1 鼠标消息 WM_LBUTTONDOWN WM_LBUTTONUP WM_RBUTTONDOWN WM_RBUTTONUP WM_LBUTTONDBLCLK WM_RBUTTONDBLCLK WM_MOUSEWHEEL 2 消息的参数 WPARAM -当前键盘的按键状态。 LPARAM - 当前鼠标的坐标 X坐标

2013-07-09 12:41:15 826

原创 调试常用方法

方法一 :WriteConsolevoid NewConsole() { AllocConsole() ; g_hStdOut = GetStdHandle(STD_OUTPUT_HANDLE) ; TCHAR szText[] = _T("Debug Message...:\n") ; WriteConsole(g_hStdOut, szText, wcslen(szText),

2013-07-09 09:04:46 496

原创 WIN32学习笔记——键盘消息

1. 键盘消息WM_KEYDOWNWM_KEYUPWM_SYSKEYDOWNALT/F10WM_SYSKEYUPWM_CHAR 当有字符键被按下时产生。Translate会将WM_KEYDOW中的可以显示的字符转换为WM_CHAR2. 消息参数WPARAM - 虚拟键码LPARAM - 相关的按键信息3. 消息的使用3.1 当有按键消息时,首先进入系统消

2013-07-09 09:02:57 627

原创 Win32学习笔记——WM_PAINT

1. WM_PAINT 的产生WM_PAINT 由于窗口的互相覆盖等,产生需要绘制的区域,那么就会产生WM_PAINT消息。一般情况下通过API声明需要绘制的区域,来产生WM_PAINT 。例如,可以使用InvalidateRect声明一个需要重新绘制的区域。2. WM_PAINT的注意点2.1 如果一个消息队列中,有多个WM_PAINT消息,只有最后一个WM_PAINT消息会

2013-07-08 22:12:02 1093

原创 Win32学习笔记——消息处理

一 Win32消息机制1.消息机制过程驱动:程序是按照我们预先定义好的顺序执行事件驱动:程序的执行顺序是无序的。某个时间点所执行的代码,是由外界通知。Win32的消息机制 —— 事件驱动2.Win32消息程序2.1Win32窗口注册2.2Win32窗口创建2.3Win32消息循环2.3.1 GetMessage BOOL WINAPI GetMessag

2013-07-08 17:24:34 569

原创 关于wprintf无法打印unicod中文字符的解决方法

void PrintUnicode(){ HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE) ; wchar_t *pszText = L"好好学习" ; WriteConsoleW(hOut, pszText, wcslen(pszText), NULL, NULL ) ;}

2013-06-28 16:36:30 786

原创 代码页 CodePage

#include "stdafx.h"#include void CodePage(int nCodePage){ SetConsoleOutputCP(nCodePage) ; for (int i=0; i<255; ++i) { printf("%c ",i) ; }}int main(int argc, char* argv[]){ CodePage(874)

2013-06-28 09:59:53 659

转载 跟我一起写 Makefile

陈皓 概述 —— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional的程序员,makefile还是要懂。这就好像现在有这么多的HTML的编辑器,但如果你想成为一个专业人士,你还是要了解HTML的标识的含义。特别在Unix下的软件编译,你就不能不自己写makefi

2013-06-28 08:30:39 392

转载 安装Red Hat Linux 9.0,所遇错误问题的解决方法

1.安装至第二张时,弹出错误提示。2.鼠标不能使用。 1.安装至第二张时,弹出错误提示。============================================Linux安装指南: 用VMWare7.1 安装Red Hat Linux 9.0,到第二张光盘时出现以下错误信息:   无法打开xpdf-2.01-8软件包。

2013-06-26 10:18:10 912

原创 C++中的类型转换

reinterpret_cast:将一个指针类型转换为另一个指针类型(不改变指针变量的值)。不能用于非指针类型的转换。double d = 12.3 ;double *pd = &d ;int *pi = reinterpret_cast(pd) ; const_cast:去除指针的常量属性,或者为非常量指针增加常量属性。double d = 123.4 ;co

2013-06-14 10:39:34 417

原创 boost——string_alog字符串的操作(五)

#include #include using namespace boost;using namespace std;int _tmain(int argc, _TCHAR* argv[]){ string str = "Samus, Link.Zelda::Mario-Luigi+zelda" ; deque d ; ifind_all(d, str, "zELDA") ;

2013-06-13 10:29:49 481

原创 boost——string_alog字符串的操作(四)

#include using namespace boost;using namespace std;int _tmain(int argc, _TCHAR* argv[]){ string str = "Samus beat the monster.\n" ; cout << replace_first_copy(str,"Samus", "samus") ; replace

2013-06-13 08:46:15 480

原创 MFC——自绘控件(从CWND派生的edit控件)

头文件:typedef enum tagBKMod{COLOR_MOD, PICTURE_MOD, TRANSPARENT_MOD}BKMod;class CTextWnd : public CWnd{ int m_cxChar ; //字符的平均宽度 int m_cyChar ; //字符的平均高度 int m_nTextPos ; //字符位置的索引 int m_nTex

2013-06-08 19:22:41 3046 3

原创 boost——string_algo字符串的操作(三)

#include #include using namespace boost;using namespace std;int _tmain(int argc, _TCHAR* argv[]){ format fmt("|%s|.pos = %d\n") ; string str("Long long ago, there was a king.") ; iterator_ra

2013-06-08 19:02:13 597

原创 boost——sting_algo字符串的操作(二)

#include #include using namespace boost;using namespace std;int _tmain(int argc, _TCHAR* argv[]){ string str1("Samus"), str2("samus") ; //注意括号第一个调用了函数的构造函数,第二个为重载的()操作符 assert(!is_equal()(s

2013-06-08 17:50:02 698

原创 boost——string_algo字符串的操作(一)

#include using namespace boost;using namespace std;int _tmain(int argc, _TCHAR* argv[]){ string str("readme.txt") ; if (ends_with(str, "txt")) { cout << to_upper_copy (str) + " UPPER" << en

2013-06-08 16:10:05 581

原创 boost——format格式化字符串

#include using namespace boost;using namespace std;int _tmain(int argc, _TCHAR* argv[]){ cout << format("%s: %d + %d = %d, \n") %"sum" %1 %2 %(1+2) ; format fmt("(%1% + %2%) * %2% = %3%\n") ;//

2013-06-08 14:05:58 534

原创 boost——字符串与数字的转换

#include using namespace boost;using namespace std;int _tmain(int argc, _TCHAR* argv[]){ int iVal = lexical_cast("100") ; long lVal = lexical_cast("20000") ; float fVal = lexical_cast("3.14159e

2013-06-08 12:53:40 3375

空空如也

空空如也

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

TA关注的人

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