- 博客(73)
- 收藏
- 关注

原创 [推荐] 一个人的成功取决于晚上的8点至10点--经典语录必读
经典语录1:<br /><br />哈佛有一个著名的理论:人的差别在于业余时间,而一个人的命运决定于晚上8点到10点之间。每晚抽出2个小时的时间用来阅读、进修、思考或参加有意的演讲、讨论,你会发现,你的人生正在发生改变,坚持数年之后,成功会向你招手。不要每天抱着QQ/MSN/游戏/电影/肥皂剧……奋斗到12点都舍不得休息,看就看一些励志的影视或者文章,不要当作消遣;学会思考人生,学会感悟人生,慢慢的,你的人生将会发生变化……<br /><br />经典语录2: <br /><br />无论你的收入是多少,
2011-05-17 12:55:00
569
原创 http://blog.jobbole.com/category/c-cpp/
http://blog.jobbole.com/category/c-cpp/
2015-12-18 14:45:26
597
转载 帮 C/C++ 程序员彻底了解链接器
本文旨在帮助 C/C++ 程序员们了解链接器到底完成了些什么工作。多年来,我给许多同事解释过这一原理,因此我觉得是时候把它写下来了,这样不仅可以供更多人学习,也省去我一遍遍讲解。[2009年3月更新,内容包括:增加了 Windows 系统中链接过程可能遇到的特殊问题,以及对某条定义规则的澄清。]促使我写下这篇文章的起因是某次我帮人解决了一个链接错误,具体是这样的:
2015-12-18 14:43:49
4785
原创 http://weng851217.blog.163.com/blog/static/884996120101128102441359/
http://weng851217.blog.163.com/blog/static/884996120101128102441359/
2015-12-17 18:07:44
544
转载 CAPI&CAPICOM的一些知识[转]
1 引言CryptoAPI(一个应用程序编程接口)目的就是提供开发者在Windows 下使用PKI 的编程接口。CryptoAPI 提供了很多函数,包括编码、解码、加密、解密、哈希、数字证书、证书管理和证书存储等功能。对于加密和解密,CryptoAPI 同时提供基于会话密钥和公钥/私钥对的方法。 在本项目中在VB编程环境中使用了CryptoAPI2.0和
2015-12-17 18:06:47
2980
转载 Microsoft CryptoAPI加密技术(一)[转载vckbase作者Cuick]
在这个信息爆炸的时代,我们不得不对信息的安全提高警惕。加密作为保障数据信息安全的一种方式,越来越受到人们的关注。下面,我将把自己对Microsoft CryptoAPI的一些肤浅的理解与大家共享,有什么不妥之处望不吝赐教。一、 加密方法:当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,密码学已经取得了巨
2015-12-17 18:05:34
729
转载 Microsoft CryptoAPI加密技术(二)[转载vckbase作者Cuick]
上次我们讲了Microsoft CryptoAPI的构成以及会话密钥的使用。接下来我们将看一下公私密钥对的使用、HASH算法、数字签名等技术。一、 公用密钥加密技术公用密钥加密技术使用两个不同的密钥:公钥和私钥。私钥必须安全的保管好不能被外人知道,而公钥可以告诉任何人,只要他需要。通常公钥是以数字证书的形式发布的。用公私密钥对中的一个密钥加密的数据只能用密钥对中的另一个密钥才能解密
2015-12-17 18:03:47
654
转载 简单实现强大的加密功能——CryptoAPI
CryptoAPI是Microsoft提供的加密应用程序接口,他其实是一组函数,他为许多高级安全性服务提供了基础,包括用于电子商务的SET,用于加密客户机/服务器消息的PCT,用于在各个平台之间来回传递机密数据和密钥的PFX,代码签名等等。 支持这种功能的主要有2000/XP(98和ME下不详) 其配置信息(密钥)主要在 HKEY_LOCAL_MACHINE\SOFTWARE\Mi
2015-12-17 18:00:53
4831
转载 cryptAcquireContext函数
功能:连接CSP,获得指定CSP的密钥容器的句柄;原型:BOOL WINAPI CryptAcquireContext( __out HCRYPTPROV *phProv, //CSP句柄指针 __in LPCTSTR pszContainer, //密钥容器名称,指向密钥容器的字符串指针; //如果dwFlags
2015-12-17 17:59:05
16916
转载 学习CRYPTOAPI第一天
一:准备工作 一般必须包含如下头文件以及定义 #include #include #include #define MY_ENCODING_TYPE (PKCS_7_ASN_ENCODING | X509_ASN_ENCODING) 当包含wincrypt.h头文件时,一般都需要定义#define _WIN32_WINNT 0x(具体的
2015-12-17 17:57:43
1875
转载 学习CRYPTO第二天
因为是.net安全,所以必须在VC7上运行下面面的一些例子(今天害得我在VC6上运行,错误一大堆),上面介绍了CRYPTAPI的一些基础,下面我就不按照MSDN的往下看了,下面的几个专题是Hashing,Signing Data,Creating and Receiving Enveloped Data Messages以及Encrypting and Decrypting.这些专题等需要用到的时
2015-12-17 17:56:40
1810
转载 CryptoAPI例子-最全1
MS CryptoAPI Samples // examCrypt.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"// Link with the Crypt32.lib file.#pragma comment(lib, "Crypt32")#pragma comment(lib, "comsuppw.lib")#defin
2015-12-17 17:54:59
3031
转载 CryptoAPI例子-最全2
// 裸签void BareSignData(BYTE* orgData, int orgSize, LPCSTR inFileName = NULL, LPCSTR outFileName = NULL){ // 准备数据 CRYPT_DATA_BLOB orgBlob; prepareData(orgData, orgSize, inFileName, o
2015-12-17 17:53:50
1586
转载 CryptoAPI例子-最全3
// 设置加密参数 CRYPT_ENCRYPT_MESSAGE_PARA EncryptPara; memset(&EncryptPara, 0, sizeof(EncryptPara)); EncryptPara.cbSize = sizeof(CRYPT_ENCRYPT_MESSAGE_PARA); EncryptPara.dwMsgEncodingTy
2015-12-17 17:51:45
1489
原创 vs调试部分断点进不去的问题
部分断点进不去,而其他类的函数却可以进去,最终解决了方案如下:tools->options->dubugging->general->require source files to exactly match the original version ,把这一项的勾取消,即disable ,就可以了。
2012-12-06 15:41:11
5663
转载 迭代器是什么
在学习c++ STL的时候,整天碰到迭代器,也整天用,但是,到底它是个什么东西,很多人没有一个认识。这里我通过几个小的DEMO,来看看迭代器。首先我实现了一个十分简陋的vector类:template class T> class vector { private: T* pbegin; int n; //当前大小 public: vec
2012-09-22 18:33:12
542
翻译 findxfile系列函数
遍历方法:1递归,2,栈 关键函数FindFirstFile,FirstNextFile(见msdn) 1,递归,(大致如下) void func(LPSTR lpPath) { WIN32_FIND_DATA fdata; ......... hFile=FindFistFile(lpPath,&fdata)
2012-09-06 20:15:08
504
转载 Google Test系列(gtest)之三 - 事件机制
一、前言gtest提供了多种事件机制,非常方便我们在案例之前或之后做一些操作。总结一下gtest的事件一共有3种:1. 全局的,所有案例执行前后。2. TestSuite级别的,在某一批案例中第一个案例前,最后一个案例执行后。3. TestCase级别的,每个TestCase前后。二、全局事件要实现全局事件,必须写一个类,继承testing::Environment
2012-06-08 13:42:31
813
转载 玩转Google开源C++单元测试框架Google Test系列(gtest)之七 - 深入解析gtest
一、前言“深入解析”对我来说的确有些难度,所以我尽量将我学习到和观察到的gtest内部实现介绍给大家。本文算是抛砖引玉吧,只能是对gtest的整体结构的一些介绍,想要了解更多细节最好的办法还是看gtest源码,如果你看过gtest源码,你会发现里面的注释非常的详细!好了,下面就开始了解gtest吧。二、从TEST宏开始前面的文章已经介绍过TEST宏的用法了,通过TEST宏,我们可以
2012-06-08 13:40:27
442
转载 GoogleTest单元测试框架
不想直接就写我认为的重点和难点的位置。还是从基础开始说起吧。 GoogleTest是Google开发的一套单元测试框架。能够在不同平台上(Windows,Linux,Mac OS X,Cygwin,Windows CE和Symbian)为C++编写的程序做单元测试。 它是基于xUnit架构(如JUnit)的测试框架,支持自动发现测试,丰富的断言集及XML的测试报告。 gte
2012-06-08 13:38:01
520
转载 孙鑫教程14课网络编程
孙鑫教程14课网络编程使用TCP/IP协议的服务器端程序:WIN32 控制台程序#include #include void main(){ WORD wVersionRequested; WSADATA wsaData; int err; wVersionRequested = MAKEWORD( 1, 1 ); err = WSAStar
2012-05-15 16:50:17
1136
转载 二叉树的遍历算法
// example2.cpp : 定义控制台应用程序的入口点。//// example1.cpp : 定义控制台应用程序的入口点。//#include"stdio.h"#include"malloc.h"#define MAX 100typedef char TDataType;typedef struct TreeNode{TDataType dat
2012-05-10 11:39:04
354
转载 孙鑫:第五讲 文本编程
1.创建插入符 CWnd::CreateSolidCaret MSDN ------------------------------------------------------------------------------------- CWnd::CreateSolidCaret Creates a solid rectangle for the system
2011-12-13 10:51:43
817
转载 孙鑫:第七讲 对话框
类的继承图表CObject CCmdTarget CWnd //由CWnd派生,是一个窗口类 CDialog 对话框分为模态对话框和非模态的对话框CDialog::DoModal //virtual int DoModal() 调用DoModal()创建一个模态的对话框 它的返回值是做为CDialog::EndDailog成
2011-12-13 10:50:41
846
转载 孙鑫:第二十讲 Hook过程函数与数据库基础知识
通过安装Hook过程,屏蔽消息队列中某些消息 The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain. You would install a hook procedure to monitor the system for certain types o
2011-12-13 10:48:02
750
转载 孙鑫:第十九讲 动态链接库
动态链接库 Windows API中的所有函数都包含在DLL中。其中有三个最重要的DLL,Kernel32.dll,它包含用于管理内存、进程和线程的各个函数;User32.dll,它包含用于执行用户界面任务(如窗口的创建和消息的传送)的各个函数;GDI32.dll,它包含用于画图和显示文本的各个函数。静态库和动态库静态库:函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。
2011-12-13 10:47:22
784
转载 孙鑫:第十八讲 ActiveX 控件
容器和服务器程序容器应用程序时可以嵌入或链接对象的应用程序。Word就是容器应用程序。服务器应用程序是创建对象并且当对象被双击时,可以被启动的应用程序。Excel就是服务器应用程序。ActiveX控件不能独立运行,它必须被嵌入容器应用程序中,和容器应用程序一起运行。Dispatch maps调度映射,主要是MFC提供让外部应用程序可以访问控件的属性和方法Event maps事件
2011-12-13 10:46:44
641
转载 孙鑫: 第十七讲 进程间通信四种方式
详细讲解进程间通讯的四种方式:剪贴板、匿名管道、命名管道和邮槽。 并比较分析这几种进程间通信的优点和缺点。比较: 剪贴板和匿名管道只能在本机进程间通讯; 命名管道和邮槽都可以网络进程通讯; 命名管道只能是点对点的通讯; 邮槽可以一对多的单向通讯,但是数据量小;1.剪贴板void CClipboardDlg::OnBtnSend(){//
2011-12-13 10:45:58
755
转载 孙鑫: 第十六讲 线程同步与异步套接字编程收
孙鑫16课:线程同步与异步套接字编程利用事件对象实现线程同步:事件对象(互斥对象也属于内核对象)也属于内核对象,包含一个使用计数,一个用于指明该事件是一个自动重置的事件还是一个人工重置的事件的布尔值,另一个用于指明该事件处于已通知状态还是未通知状态的布尔值。有两种不同类型的事件对象。一种是人工重置的事件,另一种是自动重置的事件。当人工重置的事件得到通知时,等待该事件的所有线程均变为可调
2011-12-13 10:45:13
866
转载 孙鑫:第十五讲 多线程聊天室程序创建
孙鑫15课:多线程与聊天室程序的创建程序,进程(32位进程,分配2的32次方,4GB,2GB内核分区,2GB用户分区。),线程进程是线程容器。真正完成代码执行的是线程。主线程:main(),winmain()下面创建一个多线程的程序:(WIN32控制台程序 )#include //访问windows API函数#include //C++标准输入输出流头文件 int i
2011-12-13 10:43:49
1347
转载 孙鑫:第十三讲 用CArchive类读取与保存文件
阅读本文前,我们假设您已经: 1,知道如何创建一个单文档的App Wizard 2,知道C++ 类、函数重载等简单知识 3,知道如何给View类或者Doc文档添加成员变量 4,会用MFC的IDE调试工具最好,那么本文的程序您可以copy去调试 5,知道如何为某个框架类添加虚函数或消息处理函数 本课内容: 1, 首先讲解了一下什么是
2011-12-13 10:37:15
804
转载 孙鑫:第十二讲 常量指针、指针常量、二进制操作(转
◆指向常量的指针它指向的内容是常量,不能修改;但是指针本身存放的是指针值,可以修改。char ch[5]="list" 这种赋值形式只能在数组定义的同时进行。常量字符串会自动加上\0,所以字符串长度为五通常,如果想用指针传参,通常会将形参声明的指向常量的指针类型当实参传入之后,形参无法修改实参指向的内容,从而保证了数据的一致性----------------------
2011-12-13 10:36:11
785
转载 孙鑫:第十二讲 文件、注册表、文件对话框的操作
const char *与char * const的区别。C语言对文件读写的支持,FILE指针;文本文件和二进制文件的区别。用文本方式读写文件和以二进制方式读写文件的注意事项。C++对文件读写的支持,ofstream和ifstream的用法。Win32 SDK对文件读写的支持,CreateFile函数、WriteFile函数、ReadFile函数的使用;MFC对文件读写的支持,CFile类和CFi
2011-12-13 10:31:33
873
转载 孙鑫: 第十一讲 图形保存和绘画
1.创建4个菜单,为其添加消息响应,用成员变量保存绘画类型。添加LButtonDown和Up消息。2.当窗口重绘时,如果想再显示原先画的数据,则需要保存数据。为此创建一个新类来记录绘画类型和两个点。class CGraph {public:CPoint m_ptOrigin;//起点CPoint m_ptEnd;//终点UINT m_nDrawType;//绘画类型
2011-12-13 10:30:23
971
转载 孙鑫: 第十讲 绘图
第十讲 绘图对话框中的OKBUtton对应的是OnOk函数,这个函数可以认为默认的会调用UpDateData使变量更新。 If the dialog box includes automatic data validation and exchange, the default implementation of this member function validates the di
2011-12-13 10:27:40
1061
转载 孙鑫:第九讲 界面修改,工具栏,状态栏,启动栏
1:如何修改单文档应用程序的窗口标题,查阅MSDC文章:Changing the styles of a window created by MFC. 要在CMainFrame的PrecreatWindow()中加入如下代码: cs.style&=~FWS_ADDTOTITLE; cs.lpszName="This is a test!"; 可以先不要上一句试一试!
2011-12-13 10:26:22
431
转载 孙鑫VC学习笔记:第六讲 菜单
CMenuApp 并不是从CWnd派生出来的,所以不能使用MessageBox函数。 但可以使用全局的MessageBox函数:AfxMessageBox函数 int AfxMessageBox(LPCTSTR lpszText,UINT nType,UINT nIDHelp); 对菜单项Test响应
2011-12-13 10:13:52
795
转载 MFC绘图 (孙鑫老师 第四讲 MFC消息映射机制和CDC类的使用 参考文章)
【聚杰网VC】VC中利用MFC设计绘图程序初步 首先我们说下通过鼠标的移动来绘制直线。 这里要捕获到鼠标的两个消息:WM_LBUTTONDOWN, WM_LBUTTONUP。响应WM_LBUTTONDOWN消息记录直线的起始点,响应WM_LBUTTONUP消息记录直线的终点并绘制直线。 好了,我们看看怎么响应。void CDrawView::OnLButtonDown(UIN
2011-12-13 10:10:07
849
转载 mfc中钩子的使用
钩子的安装与卸载 系统是通过调用位于钩子链表最开始处的钩子函数而进行消息拦截处理的,因此在设置钩子时要把回调函数放置于钩子链表的链首,操作系统会使其首先被调用。由函数SetWindowsHookEx()负责将回调函数放置于钩子链表的开始位置。SetWindowsHookEx()函数原型声明为:HHOOK SetWindowsHookEx(int idHook;HOOKPR
2011-11-14 12:19:36
556
转载 MFC截取桌面背景图
在OnPaint()函数里面添加如下代码:CWnd* wnd = GetDesktopWindow(); CWindowDC cdc(wnd); int width = GetSystemMetrics(SM_CXSCREEN); int heigth = GetSystemMetrics(SM_CYSCREEN); CRect rec
2011-11-14 12:18:25
562
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人