- 博客(37)
- 资源 (4)
- 收藏
- 关注
原创 自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应
自绘CListCtrl时发现ON_WM_MEASUREITEM_REFLECT和DrawItem(LPDRAWITEMSTRUCT lpMeasureItemStruct) 无响应一般情况下,我们都是在 dialog 里面 放一个 list 控件,然后 用自己的类绑定自己的自绘对象,如同下面:1. 在 dialog 里面 加一个 list 列表2. 然后 绑定这个列表哈哈...
2018-08-23 16:00:48
1970
原创 在 固定式 三维双目测量系统中 使用 CTreeCtrl 完成 Group 的操作 概念
最近 要做一款 产品, 涉及到分组显示,以前采用 Outlookbar,分组 能简单处理,但是要 做到像Gemagic 那样组的管理就很难了,Outlookbar 就必须 用 Tree 来替换掉。但是 MFC 中 CMFCListCtrl 很容易 实现 单行 高亮,多选的操作,但是 CTreeCtrl 却很难了,我们必须根据自己的需求重新 绘制 CTreeCtrl。 经过 3天的努力,在参考若干 ...
2018-08-05 16:41:31
231
原创 std::_Unforced 错误
严重性 代码 说明 项目 文件 行 禁止显示状态错误 C2664 “bool libbz3ds::IScanningService::StartScan(libbz3ds::PScanningSet,std::function<void (libbz3ds::E_SCANNING_PROCESS_STATUS)>,std::function<void (libbz3ds::PSc...
2018-06-30 12:46:02
1031
原创 怎么给MFC 某个控件 修改 字体 属性
1. 头文件定义 CFont m_titleFont;2. 初始化,比如在 Cdialog::OnInitDialog(),然后 设置 当前的 控件字体属性 m_titleFont.CreateFont(26, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation ...
2018-06-14 10:56:37
2951
1
原创 确保你的 float,double 值 不被 改变
<br />最近在做一套系统的时候,发现数据不对,原来是float的初始值已经被改变了。<br />float f1 =1543.56f;<br />调试跟踪的时候发现 f1 = 1543.5601了。<br /><br />分析原因: <br />1.float 在初始化的时候进行了运算,是2e次幂。f1 = 2048.64f就不会有这个问题。<br />2.超出float 的精度的时候,float也会做出处理,使你的值被改变。<br /><br />解决办法:<br />1.自定义数据结构体,如C# 的
2010-12-31 16:04:00
696
原创 数字证书基本概念
(1)什么是证书? 在一个电子商务系统中,所有参与活动的实体都必须用证书来表明自己的身份。证书一方面可以用来向系统中的其它实体证明自己的身份(每份证书都是经“相对权威的机构”签名的),另一方面由于每份证书都携带着证书持有者的公钥(签名证书携带的是签名公钥,密钥加密证书携带的是密钥加密公钥),所以,证书也可以向接收者证实某人或某个机构对公开密钥的拥有,同时也起着公钥分发的作用。(2)什么是C
2010-04-02 14:23:00
1136
原创 CA/RA简介
开放网络上的电子商务要求为信息安全提供有效的、可靠的保护机制。这些机制必须提供机密性、身份验证特性(使交易的每一方都可以确认其它各方的身份)、不可否认性(交易的各方不可否认它们的参与)。这就需要依靠一个可靠的第三方机构验证,而认证中心(CA:Certification Authority)专门提供这种服务。 证书机制是目前被广泛采用的一种安全机制,使用证书机制的前提是建立CA(Certifi
2010-04-02 14:21:00
9787
转载 Crypto API加密通信流程
应用程序使用Crypto API进行加密通信的一般步骤如下: 1,include wincrypt.h 2,调用CryptAcquireContext()获得某个CSP模块中的密钥容器(key container)的一个句柄; 3,发送方使用CryptImportKey()将接受方的证书导入CSP中,从而获得接收方的公钥; 4,发送方式用CryptGenKey()随机产
2010-04-02 14:20:00
1612
转载 CAPI写密钥对到USBKey CSP中
在前面了解了CryptoAPI和CSP的相关概念之后,我们具体分析了CryptoAPI的相关函数,实现了写证书、私钥的过程和更新证书的过程。写证书和私钥到CSP的方案:首先将CA返回给RA的证书和私钥进行封装,将它们封装成P12结构证书,然后将P12结构证书导入到一个临时的证书库中。在该临时库中找到证书的上下文,通过证书上下文获得一个临时的CSP句柄和证书对应的私钥的类型,然后根据这个CSP句柄和
2010-04-02 13:23:00
3660
转载 密钥容器和证书的关系
其实CSP主要是对容器里的密钥对操作的,和证书关系不大。容器里的密钥对有两种类型:一种是AT_KEYEXCHANGE,表示加密的密钥对,一种是AT_SIGNATURE表示签名的密钥对。由于美国的出口限制,在MS的CSP中加密的密钥对可以取的密钥最大长度通常会比签名的密钥对短。通常加密的密钥对只会用于加密,签名的密钥对只会用于签名,由于某些原因(例如产生证书请求),加密的密钥对也可以用于签名。我把A
2010-04-02 13:22:00
4864
转载 证书的申请过程(usbkey)
Q:有为usbkey写过csp的吗?请问如何实现用usbkey来保存证书?csp的CPSetKeyParam()需要注意什么?(MSDN上的没看懂)是否需要设定PK_CERTIFICATE这个参数?比如,需要将产生的证书存在D盘根目录下面(暂时代替usbkey),需要哪里设定?A:分别通过调用CryptSetKeyParam和CryptGetKeyParam来调用CSP实现的CPSet
2010-04-02 13:21:00
4276
原创 CRYTOAPI 库调用出错
调试中,出现以下错误:Compiling...Keycos.cppd:/soft work/other/devinterface/keycos.cpp(34) : warning C4101: ifData : unreferenced local variabled:/soft work/other/devinterface/keycos.cpp(383) : error C2065:
2010-03-31 17:27:00
2810
原创 了解 volatile 的用法
volatile的本意是一般有两种说法--1.“暂态的”;2.“易变的”。其实Volatile是由于编译器优化所造成的一个Bug而引入的关键字。 int a = 10; int b = a; int c = a; 理论上来讲每次使用a的时候都应该从a的地址来读取变量值,但是这存在一个效率问题,就是每次使用a都要去内存中取变量值,然后再通过系统总线传到CPU处理,这样开销会很大。所以那些编译器优
2008-12-09 10:35:00
703
转载 pragma指令简介
原文地址 http://www.cnblogs.com/cdo/archive/2005/06/08/170442.html 在所有的预处理指令中,#Pragma 指令可能是最复杂的了,它的作用是设定编译器的状态或者是指示编译器完成一些特定的动作。#pragma指令对每个编译器给出了一个方法,在保持与C和C++语言完全兼容的情况下,给出主机或操作系统专有的特征。依据定义,编译指示是机器或操作系
2008-12-09 09:57:00
864
原创 C预处理和宏
预处理,宏,常量,变量1.预处理.预处理常量1.1__FILE__显示源文件完整路径和名称代码如printf("the ocde in the file %s/n",__FILE__);1.2__LINE__显示源文件当前行号代码如printf("the ocde in the line %d/n",__LINE__);1.3__DATE__,__TIME__显示编译时的日期和时间代码如prin
2008-09-05 14:41:00
1801
1
原创 Stl vector,map set简单用法
C++的标准模板库(Standard Template Library,简称STL)是一个容器和算法的类库。容器往往包含同一类型的数据。STL中比较常用的容器是vector,set和map,比较常用的算法有Sort等。.一. vector1.声明: 一个vector类似于一个动态的一维数组。 vector a; //声明一个元素为int类型的vector a
2008-09-02 21:49:00
2032
1
转载 vc6.0 序列化
使类可序列化需要五个主要步骤。下面列出了这些步骤并在以后章节内进行了解释: 从 CObject 派生类(或从 CObject 派生的某个类中派生)。 重写 Serialize 成员函数。 使用 DECLARE_SERIAL 宏(在类声明中)。 定义不带参数的构造函数。 为类在实现文件中使用 IMPLEMENT_SERIAL 宏。 如果直接调用 Serialize 而不是通过
2008-06-17 09:00:00
1786
转载 c++五种内存分配、堆与栈区别
在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作
2008-03-26 10:44:00
5564
原创 关于回调函数2
三,精妙比喻:回调函数还真有点像您随身带的BP机:告诉别人号码,在它有事情时Call您。 回调用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调,例如作为一个驱动,是一个底层,他在收到一个数据时,除了完成本层的处理工作外,还将进行回调,将这个数据交给上层应用层来做进一步处理,这在分层的数据通信中很普遍。其实回调和API非常接近,他们的共性都是...
2008-03-26 10:40:00
744
转载 关于回调函数
一,回调函数 我们经常在C++设计时通过使用回调函数可以使有些应用(如定时器事件回调处理、用回调函数记录某操作进度等)变得非常方便和符合逻辑,那么它的内在机制如何呢,怎么定义呢?它和其它函数(比如钩子函数)有何不同呢?使用回调函数实际上就是在调用某个函数(通常是API函数)时,将自己的一个函数(这个函数为回调函数)的地址作为参数传递给那个函数。而那个函数在需要的时候,利用传递的地...
2008-03-26 10:36:00
659
转载 全面解读WM_NOTIFY
控件通知消息在《深度解析VC中的消息(上)》中,我们提到了消息的分类有3种:窗口消息、命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息。控件通知消息,是指这样一种消息,一个窗口内的子控件发生了一些事情,需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows公共控件如树状视图、列表视图等。例如,单击或双击一个控件、在控件中选择部分文本、
2008-02-29 10:19:00
646
转载 VC用ADO访问数据库全攻略
VC用ADO访问数据库全攻略,介绍了VC用ADO来访问数据库的各个对象及各方法,很经典,也很实用,很值得一看。 正文一、ADO概述ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口。ADO 使您能够编写应用程序以通过 OLE. DB 提供者访问和操作数据库服务器中的数据。ADO 最主要的优点是易于使用、速度快、内存支出少和磁盘遗迹
2007-10-31 15:50:00
783
转载 STL 编程
STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的代码从广义上讲分为三类:algorithm(算法)、container(容
2007-10-03 11:32:00
1118
原创 strcpy ;memcpy;memset 操作说明
strcpy 原型:extern char *strcpy(char *dest,char *src); 用法:#i nclude 功能:把src所指由NULL结束的字符串复制到dest所指的数组中。 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 memcpy 原型:extern void *memcpy(void *des
2007-09-10 14:30:00
991
1
转载 Windows系统下的多显示器模式开发
这几天研究了一下Windows系统的多显示器模式的编程,实现了Windows下支持10显示器模式的通用com组件,这里做一个整理和回顾,希望能对再这方面开发的兄弟们有些启发和帮助:(一) Windows系统下的多显示器模式的原理 Microsoft新的操作系统(Windows 98/Windows 2000/Windows XP)内置了对多监视器的支持,即用户可以在一台计算机上安装
2007-08-27 10:16:00
1536
转载 VC/MFC如何设置对话框背景颜色
1.重载OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor),即WM_CTLCOLOR消息。 ---- ①在CExampleDlgDlg的头文件中,添加一CBrush的成员变量: class CExampleDlgDlg : public CDialog
2007-08-27 10:13:00
13784
2
原创 VC中类的强制性转化,通过派生来控制自己想要的类
在c++入门的时候,常常看见很多类的强制性转换,比如看看CFrameWnd *pFrame = (CFrameWnd*)AfxGetMainWnd();CView *pView = (CView*)pFrame->GetActiveView(); 再通过pView实现其他的操作等,为什么pView可以实现其他的操作呢?因为很多的视图类都从CView中继承或派生来的,我们就可以通过其他类强制
2007-08-02 11:40:00
1004
原创 MFC 的CList,CPtrList,CObList,CStringList 用法之CStringList
CStringList存放CString字符串类型,相当于CListCString str1;CString str2;CStringList m_lsFiles; for ( int uFile = 0; uFile {str1.Format("%d" ,uFile); m_lsFiles.AddTail(str1);} // end forf
2007-08-02 11:11:00
2329
原创 MFC 的CList,CPtrList,CObList,CStringList 用法之CPtrList
CPtrList类支持void指针列表。CPtrList类的成员函数类似于CObList类的成员函数。由于这种类似性,可以使用CObList参考文档作为成员函数的说明。无论在任何时候使用一个CObject指针作为函数参数或返回值,都可以将指针替换为void。例如,CObject* & CObList::Gethead() const;可以替换成:void * CPtrList::Gethead()
2007-08-02 11:10:00
11588
1
转载 MFC 的CList,CPtrList,CObList,CStringList 的用法之CList
CList 类 C++中实现通用数据结构在程序设计当中经常会出现使用同种数据结构的不同实例的情况。例如:在一个程序中可以使用多个队列、树、图等结构来组织数据。同种结构的不同实例,也许只在数据元素的类型或数量上略有差异,如果对每个实例都重新定义,则非常麻烦且容易出错。那么能否对同种类型数据结构仅定义一次呢?答案是肯定的,C++提供的类模板(Class Template)就可以实现该功能。一、类模
2007-08-02 11:09:00
5018
1
原创 MFC 的CList,CPtrList,CObList,CStringList 的用法
一直在编程中使用stl进行编程,但是最近感觉微软提供的模版类也是很好,出错机率更低,建议在mfc的工程使用。相关介绍如下,参照msdn搞清接口即可使用CList是通用型的列表类,你可以存放指定的数据类型,用法如下:CList list;这样就指定了CList中存放的是CPoint类型的引用;CPtrList,CObList,CStringList都是具体的用于某种类型的集合类型而CPtrL
2007-08-02 11:04:00
1471
原创 CDC 与 HDC
CDC类定义的是设备上下文对象的类。CDC对象提供处理显示器或打印机等设备上下文的成员函数,以及处理与窗口客户区对应的显示上下文的成员。 通过CDC对象的成员函数进行所有的绘图。类对设备上下文操作提供了成员函数,处理绘图工具。安全型图形设备接口(GDI)对象收集,以及处理颜色和调色板。它还为获取和设置绘图属性、映射,处理视点、窗口扩展、转换坐标,处理区域、剪贴、绘制直线及绘制简单椭
2007-07-15 10:53:00
1084
原创 使用const提高函数的健壮性
看到const关键字,C++程序员首先想到的可能是const常量。这可不是良好的条件反射。如果只知道用const定义常量,那么相当于把火药仅用于制作鞭炮。const更大的魅力是它可以修饰函数的参数、返回值,甚至函数的定义体。const是constant的缩写,“恒定不变”的意思。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。所以很多C++程序设计书籍建议:“Us
2007-07-11 16:51:00
719
转载 基于VC.NET的GDI+编程之CImage(VC图像处理新招)
我们知道,Visual C++的CBitmap类和静态图片控件的功能是比较弱的,它只能显示出在资源中的图标、位图、光标以及图元文件的内容,而不像VB中的Image控件可以显示出绝大多数的外部图像文件(BMP、GIF、JPEG等)。因此,想要在对话框或其他窗口中显示外部图像文件则只能借助于第三方提供的控件或代码。现在,MFC和ATL共享的新类CImage为图像处理提供了许多相应的方法,这使得Visu
2007-07-04 14:04:00
3219
原创 MFC类中各种类的指针的获取和应用
关于MFC下的文档和视图以及框架之间的访问, 这些问题已经是老生常谈了,但我觉得还是都没有详细的说明,特查看了一些blog,总结了一下!希望对和我一样的人有点帮助! 一: 1: 因为对于SDI程序,主框架窗口就是文档框窗(如果这个也不知道,就要查看一下MFC下的单文档的构成原理了). 下面所说的是关于单文档的.
2007-07-03 12:03:00
753
转载 各种自定义消息通讯
一、普通的自定义消息方法。 大家都很清楚用户自定义消息的范围,不过,虽然说用会自定义消息从WM_USER开始,但是由于我们的工程里面一般还有很多其他的控件,他们也要占用一部分WM_USER消息范围,所以我们必须为他们留出一部分范围,这里,我们保留100个消息,一般情况下,这可以满足我们的要求。 (1)定义消息的值。在我们要发生消息的地方(例如CMyView.cpp的开
2007-06-30 16:56:00
946
转载 Windows中的消息详细列表
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。这个记录类型叫做TMsg,它在Windows单元中是这样声明的: type TMsg
2007-06-30 16:44:00
706
实现CTreeCtrl 多行选择,单行高亮显示
2018-08-05
数子水印 c++ vc
2010-04-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人