自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(116)
  • 资源 (57)
  • 收藏
  • 关注

转载 “undefined reference to“ 问题汇总及解决方法

编写测试代码如下:// test.h#endif// test.c{}// main.c{}先将test.c编译成库文件。将main.c编译成可执行文件。链接出错了,原因很简单,test()这个函数的声明和定义不一致导致,将两者更改成一样即可通过编译。

2022-10-11 21:08:39 30502

原创 源码部署pxc集群

想了想还是研究一下怎么源码安装pxc吧,毕竟很多组件都是源码安装的。环境:yum install -y boost-devel libodb-boost-devel check-devel openssl-devel libaio-devel 安装scons需要2.7+ 的Pythonwget https://nchc.dl.sourceforge.net/project/scons/scons/3.0.1/scons-3.0.1.tar.gztar xf scons-3.0.

2021-06-01 23:03:18 484

原创 Centos7.5下源码编译安装gcc-8.2.0

Centos7.5yum安装的默认gcc版本为4.8.5,如果需要使用gcc的最新特性,则需要源码安装gcc最新版。编译过程中解决不少报错,最终有了本文的实测成功记录。yum 安装依赖包yum install -y epel-releaseyum install -y gcc gcc-c++ gcc-gnat libgcc libgcc.i686 glibc-devel bison flex texinfo build-essential12下载最新的gcc源码包cd /usr/local.

2021-06-01 23:01:50 452 1

原创 将一个数组分割为多个连续的子数组

例子: 比如,数组中的数据为:[1,2,3,5,6,8,9,10,12,13,14] 可将数组分割为:[1,2,3]、[5、6]、[8,9,10]、[12,13,14] 四个数组vector<vector<U32>> findconsecutivesubarrays(vector<U32> vec){ vector<vector<U32>> antarrays; int nlen = vec.si...

2021-05-17 09:37:00 1905

原创 二叉树中第二小的节点(C语言)

/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ int Traver(int value, struct TreeNode* root) { if (root == NULL) { return -1; .

2021-04-07 13:32:03 103

原创 两个N进制100位字符串相减的问题

#include "stdafx.h"#include <iostream>#include <string.h>using namespace std;char* systemValueStr = "0123456789abcdefghigklmnopkrstuvwxyz";int main(){ while (1) { int n; char strbuf1[128] = {}; char str...

2021-02-07 11:31:05 946

原创 C++——通过域名获取ip

#include <iostream>#include <winsock2.h>#include <ws2tcpip.h>using namespace std;#pragma comment(lib, "Ws2_32.lib")int main(){ WORD wVersionRequested = 0; WSADATA wsaData = {}; int err = 0; wVersionRequested = ..

2020-07-15 10:51:26 552

转载 文件下载支持http和https

//下载文件BOOL CUpdateDlg::HttpDownLoad(const CString &strURL, const CString &saveName){BOOL bRet = FALSE;DWORD dwServerType = 0;CString strServer, strObj;INTERNET_PORT nPort = 0;if (!AfxParseURL(strURL, dwServerType, strServer, strObj, ...

2020-05-21 14:27:49 1070

原创 c++获得大文件的CRC32值

使用方法:先调用init_crc32_tab生成查询表,再调用calc_img_crc获得文件的CRC值。#define Poly 0xEDB88320L//CRC32标准static unsigned int crc_tab32[256];//CRC查询表//生成CRC查询表void init_crc32_tab( void ) { int i, j; unsig...

2020-03-03 11:28:50 2096

转载 Windbg新手入坑指南

前言这篇文章是我学习windbg的一个笔记和总结,通过和OD的功能来对比学习windbg的一些理论和命令,达到能调试一个exe或者sys文件的目的。大神请飘过~熟悉理论 提高调试效率在开始调试之前,了解以下理论知识可以帮助你大大提高调试效率定制自己的Windbg界面windbg默认打开就只有一个Command窗口,但是这样调试效率很低,所以可以先设置好自己的用户界面,下面是我的...

2019-09-19 17:51:21 629 1

原创 根据CrtDump来定位内存泄漏问题

#define _CRTDBG_MAP_ALLOC#include <Windows.h>#include <crtdbg.h>#include <time.h>#include <tchar.h>inline void EnableMemLeakCheck(){ _CrtSetDbgFlag(_CrtSetDbgFlag(_CRT...

2019-06-06 15:05:32 423

原创 模拟的暴力破解rar纯数字密码的小程序

#include <stdio.h>#include <stdlib.h>#include <windows.h>bool ExecDosCmd(char* strcmd){ SECURITY_ATTRIBUTES sa; HANDLE hRead = NULL, hWrite = NULL; sa.nLength = s...

2019-06-05 16:38:01 1929 1

原创 得到磁盘映射驱动器

#include <stdio.h>#include <stdlib.h>#include <tchar.h>#include <windows.h>// #include <shellapi.h>// #include <winnetwk.h>#pragma comment(lib, "mpr.lib")#...

2019-06-03 14:08:03 220

原创 win下c++编译和测试openssl

openssl的编译win下openssl 编译x86环境,请输入perl Configure VC-WIN32 no-asm --prefix="D:\workspace\openssl-1.1.1b\x86"如果是x64环境 , 请输入perl Configure VC-WIN64A no-asm --prefix="D:\workspace\openssl-1.1.1b\x64...

2019-05-14 18:23:21 696

原创 mfc动态实现弹出式二级菜单

#define ID_TEST1 1000001#define ID_TEST2 1000002#define ID_TEST3 1000003#define ID_TEST4 1000004void CTestMenuDlg::OnRButtonUp(UINT nFlags, CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 ...

2019-04-03 13:45:44 1756

转载 WinDbg -- 调试关键区(CriticalSection)死锁

一. 演示示例 这里一个有关键区锁死问题的程序,运行之后依次点击“CS锁死”按钮、右上角退出按钮,程序就会卡死。(图1) 对于眼下的这个问题,界面完全失去响应,这说明负责消息处理的UI线程阻塞了。对于几乎所有的windows GUI程序,编号为0的初始线程就是UI线程,windows发现该界面一段时间没有消息响应之后就会在标题后面加上“(未响应)”。 ...

2018-10-16 17:48:27 644

原创 c++时间函数性能对比

uint64_t getCurrentTime1(){    struct timeb rawtime;    ftime(&amp;rawtime);    return rawtime.time * 1000 + rawtime.millitm;}uint64_t getCurrentTime2(){    return GetTickCount64();}uint64...

2018-10-15 17:39:07 1405

转载 抢救丢失的博文

0x1. 写在前面今天下午sae突然跪了。屌丝买不起VPS    T_T~~博客没有设置自动保存。结果等sae恢复的时候,返回已经没用了。想到以前看到过用windbg来找回丢失的博文,今天也刚好来小试牛刀一把。前提是浏览器尚未关闭。0x2. 亲自动手启动windbg,选择File--&gt;Attach to a Process,这里我用的chrome,可以看到chrome有很多进程,随便...

2018-09-13 10:38:13 161

转载 学会使用windbg定位程序bug

0x1工作环境系统:win7 32bit sp1Windbg: 6.12.0002.633 x86测试程序:通过com接口获得系统计划任务0x2被调试程序说明被调试程序是一个通过com接口获取windows的计划任务列表的程序。崩溃时的提示信息 0x3启动winDbg开始调试个人喜欢使用bat脚本文件来打开windbg调试程序。我的脚本文件内容如下start """C:\Program File...

2018-09-13 10:26:31 1007

转载 八大排序算法的Python实现

1、插入排序描述插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分包含了这个数组的所有元素,但将最后一个元素除外(让数组多一个空间才有插入的位置),而第二部分就只包含这一个元素(即待插入元素)。在第一部分排序完成后,再将这个最后元

2017-06-16 15:37:54 282

转载 面试中的排序算法总结

查找和排序算法是算法的入门知识,其经典思想可以用于很多算法当中。因为其实现代码较短,应用较常见。所以在面试中经常会问到排序算法及其相关的问题。但万变不离其宗,只要熟悉了思想,灵活运用也不是难事。一般在面试中最常考的是快速排序和归并排序,并且经常有面试官要求现场写出这两种排序的代码。对这两种排序的代码一定要信手拈来才行。还有插入排序、冒泡排序、堆排序、基数排序、桶排序等。面试官对于这些排序可能会

2017-06-16 15:36:12 284

转载 最全面的常用正则表达式大全

很多不太懂正则的朋友,在遇到需要用正则校验数据时,往往是在网上去找很久,结果找来的还是不很符合要求。所以我最近把开发中常用的一些正则表达式整理了一下,在这里分享一下。给自己留个底,也给朋友们做个参考。一、校验数字的表达式1 数字:^[0-9]*$2 n位的数字:^\d{n}$3 至少n位的数字:^\d{n,}$4 m-n位的数字:^\d{m,n}$

2017-06-16 15:34:52 352

转载 懒癌者的福音:给你最全的C、C++算法集合!

一、 数论算法1.求两数的最大公约数function gcd(a,b:integer):integer;begin if b=0 then gcd:=aelse gcd:=gcd (b,a mod b);end ; 2.求两数的最小公倍数function lcm(a,b:integer):integer;beginif a<b then swap(a,b);lcm:=

2017-06-16 15:32:53 664

转载 如何在GDB中关联源代码

原文:How to point GDB to your sources 翻译:雁惊寒如果你手头上有一个你自己或者别人开发的程序,但它有一些bug。或者你只是想知道这个程序是如何工作的。怎么办呢?你需要一个调试工具。现在很少有人会直接对着汇编指令进行调试,通常情况下,大家都希望能对照着源代码进行调试。但是,你调试使用的主机,一般来说并不是构建程序的那台,因此你会看到如下这个令

2017-05-08 13:05:05 10181

原创 linux 网络命名空间 Network namespaces

Linux命名空间是一个相对较新的内核功能,对于实现容器至关重要。 命名空间将全局系统资源包装到一个抽象中,该抽象只会与命名空间中的进程绑定,从而提供资源隔离。 在本文中,我将讨论网络命名空间并展示一个实际的例子。      命名空间和cgroups是软件集装箱化(Docker)的大部分新趋势的主要内核技术之一。 简单来说,cgroups是一种计量和限制机制,它们控制您可以使用多少系统资源(C

2017-04-19 16:20:01 14308

转载 位运算符及其应用

一、C语言的六种位运算符:& 按位与| 按位或^ 按位异或~ 取反左移>> 右移 1.   按位与运算按位与运算符"&"是双目运算符。        其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。例如:9&5可写算式如下: 0000

2017-01-05 10:19:59 406

转载 char,short ,int ,long,long long,unsigned long long数据范围

速查表:char -128 ~ +127 (1 Byte)short -32767 ~ + 32768 (2 Bytes)unsigned short 0 ~ 65535 (2 Bytes)int -2147483648 ~ +2147483647 (4 Bytes)unsigned int 0 ~ 4294967295 (4 Bytes)long == intlo

2016-12-30 12:45:13 324

转载 将进程的输出重定向至文件中

CString cmdLine = _T("ping.exe 192.168.3.49"); SECURITY_ATTRIBUTES sa={sizeof ( sa ),NULL,TRUE}; SECURITY_ATTRIBUTES *psa=NULL; DWORD dwShareMode=FILE_SHARE_READ|FILE_SHARE_WRITE;

2016-09-13 10:38:57 1937

原创 Ubuntu 建立Samba服务器

一. samba的安装:   sudo apt-get install samba   sudo apt-get install smbfs   二. 创建共享目录:   mkdir /home/zhangli/share   sudo chmod 777 /home/zhangli/share/      三. 创建Samba配置文件:   1. 保存现有的配置文

2016-07-13 10:27:31 405

原创 使应用程序只能运行一次,第二次运行显示上次程序

// 此程序只能运行一次,用互斥量来判断程序是否已运行HANDLE m_hMutex=CreateMutex(NULL,TRUE, m_pszAppName); if(GetLastError() == ERROR_ALREADY_EXISTS){ ReleaseMutex(m_hMutex); HWND hHWND = ::FindWindow(NULL, m_pszAppName)

2016-01-28 14:46:12 2654

转载 利用C++11实现一个自动注册的工厂

工厂方法是最简单地创建派生类对象的方法,也是很常用的,工厂方法内部使用switch-case根据不同的key去创建不同的派生类对象,下面是一个伪代码。Message* create(int type){ switch (type) { case MSG_PGSTATS: m = new MPGStats; break; cas

2016-01-01 22:44:15 522

转载 五大常用算法之五:分支限界法

分支限界法一、基本描述    类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。   (1)分支搜索算法    所谓“分

2015-12-29 10:25:36 475

转载 五大常用算法之四:回溯法

1、概念      回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。   回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。     许多复杂的

2015-12-29 10:23:32 394

转载 五大常用算法之三:贪心算法

贪心算法一、基本概念:      所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。     贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前

2015-12-29 10:22:28 374

转载 五大常用算法之二:动态规划算法

一、基本概念    动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略    基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能

2015-12-29 10:21:36 337

转载 五大常用算法之一:分治算法

分治算法一、基本概念   在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)……    任何一个可以用计算机求解的

2015-12-29 10:20:22 394

转载 GetModuleHandle,AfxGetInstanceHandle使用区别

当一个文件被映射到调用进程的地址空间时,GetModuleHandle函数得到其中某一模块的句柄。  使用GetModuleHandle函数格式:HMODULE GetModuleHandle( LPCTSTR lpModuleName);    参数  lpModuleName:    [in]用指针指向一个包含模块名以NULL字符结尾的串,模块是.dll或.exe文件。

2015-11-19 17:03:30 635

转载 【MSP430 编译器使用经验】+ IAR 环境下的函数定位加载(分散加载)方法

以MSP430AFE253为例分享IAR(5.5)环境下的函数定位方法1、修改XCL配置文件在IAR的安装目录 Tools\430\config下找到lnk430afe253.xcl文件,将其拷贝到当前工程目录下;设置项目中链接文件的位置(将默认位置改为修改后lnk430afe253.xcl文件的存放位置),如下图所示:打开 lnk430afe253.xcl

2015-10-26 12:09:33 3819

转载 MFC/ODBC 记录集只读的问题

今天用vs2005 MFC/ODBC,对数据库中的一个表进行添加、删除操作时出现了“记录集是只读”的问题,导致无法对数据库进行修改。     现在找到问题的根源: 1.最好用CRecordset::OpenEx()函数打开数据源.2.首先要指定为dynaset,rs.Open(CRecordset::dynaset,...);其次要保证你要插入数据的那个表中

2015-09-09 15:54:55 1597

转载 CString 成员函数用法大全

CString的构造函数CString( );例:CString csStr;CString( const CString& stringSrc );例:CString csStr("ABCDEF中文123456");    CString csStr2(csStr);CString( TCHAR ch, int nRepeat = 1 );例:CString

2015-08-07 17:49:57 375

c++时间函数资料c++时间函数资料

c++时间函数资料c++时间函数资料c++时间函数资料

2011-06-04

Cstring的使用大全

Cstring的使用大全,很详细,介绍Cstring的各种使用方法

2011-06-04

C++文件读写操作C++文件读写操作

C++文件读写操作C++文件读写操作 C++文件读写操作C++文件读写操作

2011-06-02

sql2000的sa口令修改

sql2000的sa口令修改 sql2000的sa口令修改 sql2000的sa口令修改

2011-05-08

精通Visual_C++.NET2003窗口程序设计4

精通Visual_C++.NET2003窗口程序设计4 精通Visual_C++.NET2003窗口程序设计4

2011-03-25

精通Visual_C++.NET2003窗口程序设计3

精通Visual_C++.NET2003窗口程序设计3 精通Visual_C++.NET2003窗口程序设计3

2011-03-25

精通Visual_C++.NET2003窗口程序设计2

精通Visual_C++.NET2003窗口程序设计2 精通Visual_C++.NET2003窗口程序设计2

2011-03-25

精通Visual_C++.NET2003窗口程序设计1

精通Visual_C++.NET2003窗口程序设计1 精通Visual_C++.NET2003窗口程序设计1

2011-03-25

经典SQL语句大全经典SQL语句大全

经典SQL语句大全 经典SQL语句大全 经典SQL语句大全

2011-01-25

经典华为路由器配置手册

华为路由器配置手册 华为路由器配置手册 华为路由器配置手册

2011-01-25

华为交换机配置命令大全

华为交换机配置命令大全 华为交换机配置命令大全

2011-01-25

TraceRoute的工作原理TraceRoute的工作原理

TraceRoute的工作原理 TraceRoute的工作原理 TraceRoute的工作原理

2010-12-15

SNMP协议详解SNMP协议详解

SNMP协议详解 SNMP协议详解 SNMP协议详解 SNMP协议详解

2010-12-15

C++编程惯用法+高级程序员常用方法和技巧

C+++编程惯用法+高级程序员常用方法和技巧

2010-12-02

VC中利用多线程技术实现线程之间的通信

VC中利用多线程技术实现线程之间的通信 VC中利用多线程技术实现线程之间的通信

2010-12-01

Visual_C++网络程序设计实例详解

Visual_C++网络程序设计实例详解

2010-12-01

VC6.0行号插件解压发到目录下即可

VC6.0行号插件解压发到目录下即可 VC6.0行号插件解压发到目录下即可

2010-11-28

Windows核心编程-第五版中文版

Windows核心编程-第五版中文版 Windows核心编程-第五版中文版

2010-11-28

c/c++代码静态测试工具PCLint 8.0使用说明

PCLint 8.0使用说明 PCLint 8.0使用说明

2010-11-28

c/c++代码静态测试工具PCLint培训手册

PCLint培训手册 PCLint培训手册

2010-11-28

c/c++语言静态测试工具 PC-Lint选项详解

PC-Lint选项详解 PC-Lint选项详解

2010-11-28

VisualAssistX for VC6.0 免注册版

VisualAssistX for VC6.0 免注册版 VisualAssistX for VC6.0免注册版

2010-11-27

UNIX环境高级编程中文版第三版+源码

UNIX环境高级编程中文版第三版+源码

2017-03-15

VC6迷你版本和番茄助手(支持xp_win7_win8等系统)

VC6迷你版本和番茄助手(支持xp_win7_win8等系统)

2015-08-04

db文件查看软件 SQLiteSpy

db文件查看软件 SQLiteSpy

2013-10-11

Visual_Assist_X_10.6.1859和Visual+Assist+X+10.7.1936

Visual_Assist_X_10.6.1859和Visual+Assist+X+10.7.1936完美破解版

2013-06-05

tcl脚本语言的教程

tcl脚本语言的教程

2012-01-04

带下拉框的列表框

带下拉框的列表框带下拉框的列表框 带下拉框的列表框带下拉框的列表框

2011-12-22

Visual C++2010开发权威指南(共三部分).part1.rar

第一部分 Visual C++ 2010开发与新特性 第1章 Visual C++ 2010开发环境简介 1 1.1 Visual C++ 2010简介 1 1.2 Visual C++ 2010下载安装指南 1 1.3 Visual C++ 2010主要特点与新特性 3 1.4 Visual C++ 2010开发环境操作指南 6 1.4.1 创建Visual C++应用程序 6 1.4.2 Visual C++ 2010菜单介绍 9 1.5 Visual C++ 2010 MFC简介 12 1.6 Visual C++ 2010 clr简介 13 1.7 Visual C++ 2010 64位编程 14 1.8 支持新的C++语言标准 14 1.8.1 支持新的C++语言标准(C++ 0x) 14 1.8.2 Lambda表达式 15 1.8.3 静态断言static_assert 17 1.8.4 auto关键字 18 1.8.5 右值引用 19 1.8.6 安全数据类型 22 1.8.7 移动构造 23 1.9 支持开发并行程序 26 1.9.1 运行库支持native代码 26 1.9.2 调试和分析工具 29 1.10 对MFC的增强 31 1.10.1 任务对话框CTaskDialog 31 1.10.2 重启管理器(Restart Manager)支持 33 1.10.3 支持新的用户界面风格 34 第2章 MFC应用程序框架 37 2.1 用MFC向导生成应用程序 37 2.1.1 生成的程序框架 37 2.1.2 生成的应用程序类型 43 2.1.3 向导生成工程文件简介 46 2.2 应用程序框架分析 46 2.2.1 框架简介 47 2.2.2 MFC应用程序运行流程 50 2.2.3 应用程序窗口 51 2.2.4 消息机制与消息循环 59 2.3 文档与视图 65 2.3.1 文档类结构分析 65 2.3.2 视图类结构分析 65 2.3.3 文档与视图的关系 67 2.3.4 sdi应用程序分析 69 2.3.5 mdi应用程序分析 69 2.4 工具栏与状态栏 69 2.4.1 工具栏 70 2.4.2 状态栏 78 2.5 MFC新功能——Office 2007风格程序分析 85 2.6 MFC新功能——Visual Studio风格程序分析 90 2.7 MFC新功能——Windows资源管理器风格程序分析 98 2.8 应用程序框架类对象分析 100 2.8.1 视图类对文档类的调用 100 2.8.2 在框架类中获得当前的文档类和视图类对象指针 101 2.8.3 获得应用程序类对象的指针 101 2.8.4 从应用类对象中获得主框架类对象的指针 101 2.9 小结 102 第3章 Visual C++ 2010 MFC菜单编程 103 3.1 菜单编程 103 3.1.1 创建菜单 104 3.1.2 创建菜单热键 115 3.1.3 标记菜单 115 3.1.4 给菜单加入图标 119 3.1.5 禁用菜单 121 3.1.6 移除与加载菜单 127 3.2 菜单消息的传输机制 129 3.2.1 菜单消息的分类 129 3.2.2 菜单消息的传输路由 129 3.3 动态菜单操作 131 3.3.1 添加菜单 131 3.3.2 插入菜单 133 3.3.3 删除菜单 135 3.3.4 插入菜单的命令响应 136 3.3.5 修改菜单 137 3.4 小结 140 第4章 Visual C++ 2010 MFC对话框编程 141 4.1 对话框简介 141 4.1.1 对话框的控件简介 141 4.1.2 对话框的种类简介 149 4.1.3 设计对话框 150 4.2 创建与销毁对话框 153 4.2.1 模态对话框 153 4.2.2 非模式对话框 159 4.2.3 属性页对话框 163 4.3 消息对话框 173 4.4 通用对话框 175 4.4.1 文件打开对话框 176 4.4.2 文件保存对话框 178 4.4.3 颜色对话框 179 4.4.4 字体对话框 181 4.4.5 查找对话框 183 4.4.6 页面设置对话框 185 4.4.7 打印对话框 186 4.5 小结 187 第5章 Visual C++ 2010 MFC对话框控件 188 5.1 Visual C++ 2010 Button控件简介与开发 191 5.2 Visual C++ 2010 List Box控件简介与开发 193 5.3 Visual C++ 2010 Com boBox控件简介与开发 195 5.3.1 创建扩展组合框控件 196 5.3.2 在扩展组合框控件中使用 5.3.2 图像列表 197 5.3.3 设置各项的图像 197 5.3.4 处理扩展组合框控件中的通知消息 198 5.4 Visual C++ 2010 List控件简介与开发 198 5.4.1 列表控件和列表视图 199 5.4.2 列表项和图像列表 199 5.4.3 回调项和回调屏蔽 200 5.4.4 创建列表控件 200 5.4.5 创建图像列表 201 5.4.6 向控件添加列(报表视图) 204 5.4.7 向控件添加项 205 5.4.8 在列表控件中滚动、排列、排序和查找 205 5.4.9 在列表控件中实现工作区 205 5.4.10 处理列表控件中的通知消息 206 5.4.11 更改列表控件样式 206 5.4.12 虚拟列表控件 207 5.4.13 列表控件的消息映射 209 5.4.14 列表控件的风格选项及表头设置 210 5.4.15 销毁列表控件 210 5.5 Visual C++ 2010 Edit控件简介与开发 211 5.6 Visual C++ 2010 Rich Edit控件简介与开发 213 5.6.1 Rich Edit控件中的字符格式 215 5.6.2 Rich Edit控件中的段落格式 215 5.6.3 Rich Edit控件中的当前选定内容 215 5.6.4 Rich Edit控件中的分词 216 5.6.5 Rich Edit控件中的剪贴板操作 216 5.6.6 Rich Edit控件中的流操作 216 5.6.7 Rich Edit控件中的打印操作 216 5.6.8 无底的Rich Edit控件 217 5.6.9 来自Rich Edit控件的通知 217 5.7 Visual C++ 2010 Progress控件简介与开发 219 5.7.1 进度控件的样式 219 5.7.2 进度控件的设置 219 5.7.3 操作进度控件 220 5.8 Visual C++ 2010 Tree控件简介与开发 220 5.8.1 树控件样式 221 5.8.2 树控件父项和子项 221 5.8.3 树控件项位置 222 5.8.4 树控件项标签 222 5.8.5 树控件标签编辑 223 5.8.6 树控件项的状态 223 5.8.7 树控件图像列表 224 5.8.8 树控件项选择 224 5.8.9 树控件拖放操作 224 5.8.10 树控件项信息 225 5.8.11 树控件通知消息 225 5.9 Visual C++ 2010 DBgrid控件简介与开发 226 5.9.1 示例程序1 226 5.9.2 示例程序2 227 5.10 Visual C++ 2010 Rebar控件简介与开发 228 5.10.1 在Rebar控件中使用图像列表 230 5.10.2 在Rebar控件中使用对话栏 231 5.10.3 处理Rebar控件中的通知消息 231 5.11 Visual C++ 2010 Timer控件简介与开发 232 5.12 Visual C++ 2010 Tab控件简介与开发 234 5.12.1 选项卡和选项卡控件属性 235 5.12.2 选项卡控件的使用方法 235 5.12.3 创建选项卡控件的方法 235 5.12.4 处理选项卡控件通知消息 236 5.12.5 ctabctrl类简介 236 5.13 Visual C++ 2010 IP控件简介与开发 241 5.14 Visual C++ 2010 Picture控件简介与开发 241 5.15 Visual C++ 2010 Slider控件简介与开发 244 5.15.1 滑块控件样式 244 5.15.2 滑块控件成员函数 245 5.15.3 滑块控件通知消息 246 5.16 Visual C++ 2010 Scroll Bar控件简介与开发 246 5.17 Visual C++ 2010 Hot Key控件简介与开发 248 5.17.1 使用热键控件 248 5.17.2 设置热键 249 5.18 Visual C++ 2010 Animation控件简介与开发 249 5.18.1 使用动画控件 249 5.18.2 动画控件发送的通知 250 5.19 Visual C++ 2010 Spin控件简介与开发 250 5.19.1 数值调节钮的样式 250 5.19.2 数值调节钮成员函数 251 5.20 Visual C++ 2010 GroupBox控件简介与开发 251 5.21 Visual C++ 2010 Data Time Picker控件简介与开发 252 5.21.1 创建日期和时间选择器控件 253 5.21.2 访问嵌入的月历控件 253 5.21.3 在日期和时间选择器控件中使用自定义格式字符串 254 5.21.4 在日期和时间选择器控件中使用回调字段 254 5.21.5 处理日期和时间选择器控件中的通知消息 256 5.22 Visual C++ 2010 Month Canlendar控件简介与开发 256 5.22.1 创建月历控件 257 5.22.2 处理月历控件中的通知消息 257 5.22.3 设置月历控件的日状态 257 5.23 Visual C++ 2010 Custom控件简介与开发 258 5.23.1 使用MFC方法定制控件必备的几个基本概念 259 5.23.2 定制自定义控件的3种常见方法 260 5.24 Visual C++ 2010 SysLink控件简介与开发 260 5.25 Visual C++ 2010 Split Button控件简介与开发 261 5.26 Visual C++ 2010 Network Address控件简介与开发 262 5.27 Visual C++ 2010 Check Box控件简介与开发 262 5.28 Visual C++ 2010 Radio Button控件简介与开发 264 5.28.1 为单选按钮控件分组 264 5.28.2 获得被选中的单选按钮的文本 264 5.29 Visual C++ 2010 Mediaplayer控件简介与开发 265 5.30 小结 266 第二部分 Visual C++ 2010下MFC开发 第6章 计算机测控系统概述 267 6.1 Visual C++ 2010 SDI开发简介 267 6.1.1 建立应用程序基本框架 267 6.1.2 处理视图 267 6.1.3 处理文档 271 6.1.4 串行化处理 274 6.1.5 sdi应用程序编程思路 275 6.2 Visual C++ 2010 MDI开发简介 277 6.2.1 多文档接口 277 6.2.2 生成程序 278 6.2.3 程序类、文件和代码 279 6.2.4 自定义资源 281 6.3 Visual C++ 2010 View开发 282 6.3.1 生成源文件 283 6.3.2 初始化视图类数据成员 283 6.3.3 加入消息处理功能 285 6.3.4 设计程序资源 290 6.3.5 定制miniDraw窗口 292 6.3.6 程序清单 293 6.4 Visual C++ 2010 EditView开发 298 6.4.1 生成MiniEdit程序 299 6.4.2 修改程序菜单 300 6.4.3 编辑加速键 301 6.4.4 程序清单 303 6.5 Visual C++ 2010 FormView开发 306 6.5.1 自定义FormDemo程序 307 6.5.2 程序清单 314 6.6 Visual C++ 2010 ScrollView开发 319 6.6.1 加入滚动功能 319 6.6.2 坐标换算 319 6.6.3 限制图形大小 322 6.6.4 改变鼠标光标 325 6.7 Visual C++ 2010 HtmlEditView开发 328 6.8 Visual C++ 2010 HtmlView开发 331 6.9 Visual C++ 2010 ListView开发 335 6.10 Visual C++ 2010 RichEditView开发 335 6.11 VisualC++ 2010 TreeView开发 336 6.12 Visual C++ 2010 Office 2007风格文档视图开发框架 337 6.13 Visual C++ 2010 Visual Studio 2008风格文档视图开发框架 342 6.14 Visual C++ 2010 Windows资源管理器风格文档视图开发框架 346 6.15 小结 350 第7章 Visual C++ 2010 MFC应用程序界面与美化 351 7.1 应用程序窗口风格美化 351 7.1.1 借助ActiveSkin美化窗口 351 7.1.2 修改窗口外观 352 7.2 应用程序窗口图标与背景修改 359 7.2.1 修改窗口图标 359 7.2.2 修改背景 360 7.3 工具栏编程与美化 365 7.3.1 创建工具栏 365 7.3.2 在工具栏中添加、删除按钮 366 7.3.3 从对话框创建工具栏 368 7.4 状态栏编程与美化 370 7.4.1 创建状态栏 370 7.4.2 在状态栏中插入进度条 370 7.5 鼠标光标编程 371 7.5.1 鼠标光标编程步骤 371 7.5.2 鼠标的消息处理机制 373 7.5.3 示例 374 7.6 创建启动界面 376 7.7 创建特效窗口启动应用程序 378 7.8 创建特效窗口关闭应用程序 378 7.9 小结 383 第8章 Visual C++ 2010 MFC文本与字体 384 8.1 CFont字体类简介 384 8.1.1 CFont字体类成员介绍 384 8.1.2 CFont字体类初始化函数 385 8.1.3 其他成员介绍 390 8.2 创建文本插入符与图片插入符 391 8.2.1 创建文本插入符 391 8.2.2 创建图片插入符 394 8.2.3 创建随鼠标移动的插入符 396 8.3 输出文字与字体格式 397 8.3.1 输出固定文字 397 8.3.2 设定输出字体的格式 398 8.3.3 字符输入 399 8.4 输出彩色文字与变色文字 404 8.4.1 DrawText()函数和字符串资源 404 8.4.2 定时器和变色文字 408 8.5 小结 410 第9章 Visual C++ 2010 MFC图形图像编程 411 9.1 Windows绘图简介 411 9.1.1 设备描述表 411 9.1.2 绘图属性 412 9.1.3 元文件和路径 412 9.1.4 颜色和调色板 412 9.1.5 图形设备接口函数 413 9.2 Windows屏幕绘图简介 414 9.2.1 窗口客户区 414 9.2.2 映射模式 414 9.2.3 图形刷新 416 9.3 微软GDI绘图简介 416 9.3.1 GDI基础 416 9.3.2 GDI结构 417 9.3.3 GDI函数调用 417 9.3.4 GDI基本图形 418 9.4 GDI笔绘图 419 9.4.1 CPen类简介 419 9.4.2 使用GDI绘制线条 419 9.4.3 使用CPen类绘制指定的线条 422 9.4.4 绘制连续的线条 424 9.5 GDI画刷绘图 425 9.5.1 CBrush类介绍 426 9.5.2 CBrush类简单画刷的实现 429 9.5.3 CBrush类位图画刷的实现 430 9.5.4 透明画刷的实现 431 9.6 小结 433 第10章 Visual C++ 2010 MFC动态函数链接库 434 10.1 动态函数链接库简介 434 10.1.1 什么是动态函数链接库 434 10.1.2 动态函数链接库的优点 435 10.1.3 动态函数链接库的起源 436 10.1.4 动态函数链接库的原理 436 10.2 调用动态函数链接库 436 10.2.1 静态链接 436 10.2.2 动态链接 438 10.3 Dll的框架简介 439 10.3.1 DllMain()函数简介 439 10.3.2 Dll的导出函数 439 10.4 创建MFC Dll范例 440 10.4.1 建立MFC Dll工程 440 10.4.2 添加实现代码 442 10.4.3 编译并调用 443 10.5 创建Win32 Dll范例 443 10.5.1 建立Win32工程 443 10.5.2 添加动态链接库代码 444 10.5.3 编译工程 444 10.6 创建资源Dll范例 445 10.6.1 建立MFC Application工程 445 10.6.2 建立中文资源Dll 445 10.6.3 加载资源Dll 446 10.7 hook技术 446 10.7.1 hook函数类型 446 10.7.2 使用hook函数 449 10.7.3 hook鼠标 449 10.7.4 hook键盘 450 10.8 小结 452 第11章 Visual C++ 2010 MFC Activex控件 454 11.1 Activex控件简介 454 11.2 Activex控件测试与注册 455 11.2.1 Activex控件的测试 455 11.2.2 Activex控件的注册 457 11.3 MFC Activex控件向导 458 11.4 Activex控件属性开发 458 11.4.1 添加常用属性 459 11.4.2 添加自定义属性 460 11.4.3 高级属性实现 460 11.4.4 访问环境属性 461 11.5 Activex控件事件开发 461 11.5.1 添加常用事件 462 11.5.2 添加自定义事件 463 11.6 Activex控件方法开发 464 11.6.1 添加常用方法 465 11.6.2 添加自定义方法 465 11.6.3 从方法返回错误代码 466 11.7 完整Activex控件范例 467 11.7.1 创建工程 467 11.7.2 clock控件的实现 469 11.7.3 添加常用属性 470 11.7.4 添加自定义属性 473 11.7.5 添加方法 474 11.7.6 添加常用事件 475 11.7.7 添加自定义事件 476 11.8 调用Activex控件 477 11.9 小结 478 第12章 Visual C++ 2010 MFC文件与注册表操作 479 12.1 文本操作串行化 479 12.1.1 文档类serialize()函数 479 12.1.2 CArchive对文件进行读写 482 12.1.3 文档操作串行化代码分析 485 12.2 CFile类 492 12.2.1 打开文件操作 493 12.2.2 读写文件操作 494 12.2.3 定位文件操作 496 12.2.4 关闭文件操作 497 12.2.5 异常操作 497 12.2.6 文件管理操作 498 12.3 .ini文件读写操作 500 12.4 注册表读写操作 502 12.4.1 注册表简介 502 12.4.2 注册表API 504 12.4.3 访问并修改注册表 507 12.5 小结 509 第13章 Visual C++ 2010 MFC数据库开发 510 13.1 数据库基本知识 510 13.2 SQL语言的基础知识 511 13.3 ODBC访问数据库 512 13.3.1 注册ODBC数据库 512 13.3.2 创建一个MFC的ODBC程序 514 13.3.3 程序结构分析 515 13.3.4 在视图上显示数据库查询结果 520 13.3.5 对查询结果排序及设置查询条件 524 13.3.6 动态设置查询条件并更新查询结果 527 13.4 ODBC更新数据库 532 13.5 ODBC访问SQL server 540 13.6 ado数据库访问 543 13.6.1 ado数据库访问概述 543 13.6.2 在Visual C++中使用ado编程 546 13.7 ado访问SQL server数据库 556 13.8 小结 556 第14章 Visual C++2010 MFC多线程程序设计 557 14.1 进程和多线程的概念 557 14.2 线程的创建 558 14.2.1 创建工作者线程 558 14.2.2 创建用户界面线程 559 14.3 线程的终止 560 14.4 设置线程的优先级 562 14.5 暂停及重新启动线程 563 14.6 线程间的通信 571 14.7 线程的同步 572 14.7.1 临界区 572 14.7.2 互斥量 573 14.7.3 事件 573 14.7.4 信号量 574 14.8 小结 579 第15章 Visual C++ 2010 MFC网络程序设计 580 15.1 计算机网络的基础知识 580 15.1.1 TCP/IP协议模型 580 15.1.2 ip地址 582 15.1.3 端口 582 15.1.4 数据封装 582 15.2 Winsock简介 583 15.3 MFC对Windows Sockets的支持 583 15.3.1 Socket的定义 584 15.3.2 casyncSocket类介绍 584 15.3.3 cSocket类介绍 592 15.4 一个基于udp的聊天室示例 593 15.4.1 MFC对Windows Sockets的初始化 593 15.4.2 服务器端的实现 595 15.4.3 客户端的实现 599 15.5 一个基于TCP的聊天室示例 605 15.5.1 服务器端的实现 606 15.5.2 客户端的实现 609 15.6 小结 612 第16章 Visual C++ 2010 MFC进程通信 613 16.1 剪贴板通信 613 16.1.1 Openclipboard()函数 613 16.1.2 Closeclipboard()函数 614 16.1.3 emptyclipboard()函数 614 16.1.4 Setclipboarddata()函数 614 16.1.5 globalalloc()函数 615 16.1.6 globallock()函数 616 16.1.7 globalunlock()函数 616 16.1.8 Getclipboarddata()函数 616 16.1.9 一个利用剪贴板在不同进程之间交换数据的示例 616 16.2 邮槽通信 619 16.2.1 Createmailslot()函数 619 16.2.2 Getmailslotinfo()函数 620 16.2.3 Setmailslotinfo()函数 621 16.2.4 ReadFile()函数 621 16.2.5 GetFiletime()函数和SetFiletime()函数 621 16.2.6 CreateFile()函数 622 16.2.7 WriteFile()函数 623 16.2.8 Closehandle()函数 623 16.2.9 一个利用邮槽在不同进程间通信的示例 623 16.3 匿名管道通信 628 16.3.1 Createpipe()函数 628 16.3.2 Createprocess()函数 629 16.3.3 Getstdhandle()函数 631 16.3.4 ReadFile()和WriteFile()函数 632 16.3.5 一个利用匿名管道在父子进程间通信的示例 632 16.4 命名管道通信 637 16.4.1 Createnamedpipe()函数 637 16.4.2 connectnamedpipe()函数 639 16.4.3 disconnectnamedpipe()函数 640 16.4.4 waitnamedpipe()函数 640 16.4.5 利用命名管道通信的基本流程 640 16.4.6 一个利用命名管道在不同进程间通信的示例 641 16.5 共享内存通信 647 16.5.1 CreateFilemApping()函数 647 16.5.2 mapViewofFile()函数 648 16.5.3 unmapViewofFile()函数 649 16.5.4 OpenFilemApping()函数 649 16.5.5 利用共享内存通信的基本流程 649 16.5.6 一个利用共享内存在不同进程间通信的示例 650 16.6 小结 655 第三部分 Visual C++ 2010下MFC与clr进行开发 第17章 Visual C++ 2010 clr开发基础 656 17.1 什么是.net 656 17.2 .net框架 656 17.3 公共语言运行时(clr) 657 17.3.1 托管代码 659 17.3.2 代码验证 659 17.3.3 代码访问验证 659 17.3.4 垃圾回收 659 17.3.5 语言的互操作性 660 17.3.6 实时编译(jit) 660 17.4 通用类型系统(cts) 661 17.5 通用语言规范(cls) 663 17.6 程序集 664 17.6.1 元数据 664 17.6.2 程序集版本管理 665 17.6.3 微软中间语言(msil) 665 17.6.4 资源 666 17.7 .net开发应用程序的范畴 666 17.8 .net框架类库 667 17.9 C++/clr开发语法简介 668 17.10 小结 670 第18章 Visual C++ 2010 clr Windows窗口编程 671 18.1 创建Windows应用程序 671 18.2 类层次结构 677 18.3 control类 677 18.3.1 大小与位置 678 18.3.2 外观 679 18.3.3 用户交互操作 679 18.3.4 Windows功能 680 18.4 标准Windows控件使用指南 681 18.4.1 Button控件 681 18.4.2 checkBox控件 681 18.4.3 radioButton控件 682 18.4.4 comboBox控件、ListBox控件和checkedListBox控件 682 18.4.5 datetimepicker控件 684 18.4.6 errorprovider组件 685 18.4.7 helpprovider组件 686 18.4.8 imageList组件 686 18.4.9 label控件 686 18.4.10 ListView控件 687 18.4.11 pictureBox控件 688 18.4.12 progressbar控件 689 18.4.13 TextBox控件、RichTextBox控件与maskedTextBox 18.4.13 控件 689 18.4.14 panel控件 690 18.4.15 flowlayoutpanel控件和tablelayoutpanel控件 690 18.4.16 splitcontainer控件 691 18.4.17 tabcontrol控件和tabpage控件 691 18.4.18 toolstrip控件 692 18.4.19 menustrip控件 694 18.4.20 conTextmenustrip控件 694 18.4.21 toolstripmenuitem控件 694 18.4.22 toolstripmanager类 695 18.4.23 toolstripcontainer控件 695 18.5 窗体Winform 695 18.5.1 form类 695 18.5.2 多文档界面 700 18.5.3 定制控件 700 18.6 小结 707 第19章 Visual C++ 2010 MFC与.net交互编程 708 19.1 编写托管扩展应用程序 708 19.2 编写访问.net的MFC程序 709 19.3 混合模式编程问题 711 19.4 运用.net类型 713 19.4.1 定义和使用托管类型 713 19.4.2 将非托管对象作为托管类的成员 715 19.4.3 装箱和拆箱 716 19.4.4 指针 717 19.4.5 在非托管代码中使用托管数组 719 19.5 小结 720 第四部分 发布Visual C++ 2010程序 第20章 Visual C++ 2010应用程序部署 721 20.1 Windows installer介绍 722 20.2 一个简单的Windows应用程序 723 20.3 使用安装向导快速创建安装包 726 20.4 手动创建安装程序 728 20.5 使用安装编辑器 731 20.5.1 File system(文件系统编辑器) 731 20.5.2 registry编辑器 732 20.5.3 File types编辑器 733 20.5.4 user interface编辑器 734 20.5.5 custom actions编辑器 735 20.5.6 launch conditions编辑器 736 20.6 小结 736 第五部分 基于Windows 7平台用Visual C++ 2010开发 第21章 Visual C++ 2010基于Windows 7新特性开发 737 21.1 实现C++兼容开发 737 21.1.1 实现uac数据重定向 737 21.1.2 实现高dpi 741 21.1.3 实现安装程序检测 742 21.1.4 会话0隔离 743 21.1.5 用户界面特权隔离(uipi) 746 21.1.6 版本检查 748 21.2 Windows 7系统专题 750 21.2.1 实现超级任务栏 750 21.2.2 实现shell库 759 21.2.3 实现后台服务 762 21.2.4 开发基于Windows 7的 21.1.5 设备与性能应用 763 21.3 开发基于Windows 7的新特性 769 21.3.1 实现多点触摸 769 21.3.2 实现获取传感器与位置 771 21.3.3 实现Windows 7 ribbon界面开发 774 21.3.4 基于Visual C++ 2010开发基于Windows 7的语音识别与语音合成 776 21.3.5 基于Visual C++ 2010与Windows sdk for Windows 7开发Windows 7平台的tablet pc应用 787 21.3.6 开发Windows 7的安全体验cryptoAPI加密 804

2011-11-12

VC++6.0中如何发送自定义消息

VC++6.0中如何发送自定义消息

2011-11-11

MFC_VC_Tree_Control控件使用_举例

MFC_VC_Tree_Control控件使用_举例

2011-11-09

VC++6[1].0控件使用方法大全

VC++6[1].0控件使用方法大全

2011-11-08

常见设计模式的解析和实现(C++)

常见设计模式的解析和实现(C++)常见设计模式的解析和实现(C++)常见设计模式的解析和实现(C++)常见设计模式的解析和实现(C++)

2011-11-02

Clistctrl用法

Clistctrl用法Clistctrl用法Clistctrl用法 Clistctrl用法Clistctrl用法Clistctrl用法

2011-10-17

VISUAL_C++MFC编程实例

VISUAL_C++MFC编程实例VISUAL_C++MFC编程实例 VISUAL_C++MFC编程实例VISUAL_C++MFC编程实例

2011-07-09

敏捷开发专辑(大全)

敏捷开发专辑敏捷开发专辑 敏捷开发专辑敏捷开发专辑

2011-06-30

Visual_C++__MFC入门教程

Visual_C++__MFC入门教程Visual_C++__MFC入门教程 Visual_C++__MFC入门教程Visual_C++__MFC入门教程

2011-06-29

VC++ 资料 VS2008快捷键

VS2008快捷键_大全VS2008快捷键_大全VS2008快捷键_大全

2011-06-28

VC用ADO访问数据库全攻略

VC用ADO访问数据库全攻略 VC用ADO访问数据库全攻略 VC用ADO访问数据库全攻略

2011-06-09

C++文件读写操作C++文件读写操作

C++文件读写操作C++文件读写操作 C++文件读写操作C++文件读写操作

2011-06-03

空空如也

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

TA关注的人

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