Welcome 微信登录

首页 / 软件开发 / C++

用托管C++监视Windows事件日志

用托管C++监视Windows事件日志

用托管C++监视Windows事件日志2008-01-05 天极 事件日志随着病毒、流氓软件、广告软件等的日益增多,许多人都开始使用注册表监视程序,这些监视程序通常会在安装软件试图修改注册表时,弹出一个警告窗口提示用户。然而,在安全问题上,经常被忽略的地方则是Windows事件日志--尤其是安全日志,安全日志通常记录了Windows操作及关键系统应用程序的操作,如试图非法登录、端口扫描、及其他安全相关的事件。文中将演示如何在应用程序中监视Windows事件...
多线程编程之三——线程间通讯

多线程编程之三——线程间通讯

多线程编程之三——线程间通讯2010-09-29韩耀旭七、线程间通讯一般而言,应用程序中的一个次要线程总是为主线程执行特定的任务,这样,主线程和次要线程间必定有一个信息传递的渠道,也就是主线程和次要线程间要进行通信。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的,下面将进行说明。使用全局变量进行通信由于属于同一个进程的各个线程共享操作系统分配该进程的资源,故解决线程间通信最简单的一种方法是使用全局变量。对于标准类型的全局变量,我们建议...
多线程编程之四——线程的同步

多线程编程之四——线程的同步

多线程编程之四——线程的同步2010-09-29韩耀旭八、线程的同步虽然多线程能给我们带来好处,但是也有不少问题需要解决。例如,对于像磁盘驱动器这样独占性系统资源,由于线程可以执行进程的任何代码段,且线程的运行是由系统调度自动完成的,具有一定的不确定性,因此就有可能出现两个线程同时对磁盘驱动器进行操作,从而出现操作错误;又例如,对于银行系统的计算机来说,可能使用一个线程来更新其用户数据库,而用另外一个线程来读取数据库以响应储户的需要,极有可能读数据库的线程...
Microsoft CryptoAPI加密技术(二)

Microsoft CryptoAPI加密技术(二)

Microsoft CryptoAPI加密技术(二)2008-01-05 VC知识库 上次我们讲了Microsoft CryptoAPI的构成以及会话密钥的使用。接下来我们将看一下公私密钥对的使用、HASH算法、数字签名等技术。一、 公用密钥加密技术公用密钥加密技术使用两个不同的密钥:公钥和私钥。私钥必须安全的保管好不能被外人知道,而公钥可以告诉任何人,只要他需要。通常公钥是以数字证书的形式发布的。用公私密钥对中的一个密钥加密的数据只能用密钥对中的另一个密...
基于ODBC自动存储自动定期删除数据库记录

基于ODBC自动存储自动定期删除数据库记录

基于ODBC自动存储自动定期删除数据库记录2010-09-29赵慎交本人在近期一电厂控制工程中,用户要求我们程序对数据要有自动保存和定期删除功能,因为我们以前是做 DCS 加强系统,DCS具有数据的自动处理功能,不需要我们做。为了满足用户需要,应用必须实现自动数据处理。本文下面就来介绍如何使用 VC 实现基于 ODBC 数据库的自动删除和存储。希望本文提供的方法对你有所帮助。首先,注册数据源。如图所示:2、然后在 IDE 中建立基于对话框的程序,并创建基类...
Microsoft CryptoAPI加密技术(一)

Microsoft CryptoAPI加密技术(一)

Microsoft CryptoAPI加密技术(一)2008-01-05 VC知识库 在这个信息爆炸的时代,我们不得不对信息的安全提高警惕。加密作为保障数据信息安全的一种方式,越来越受到人们的关注。下面,我将把自己对Microsoft CryptoAPI的一些肤浅的理解与大家共享,有什么不妥之处望不吝赐教。一、 加密方法:当初,计算机的研究就是为了破解德国人的密码,人们并没有想到计算机给今天带来的信息革命。随着计算机的发展,运算能力的增强,密码学已经取得了...
关于构造单实例类的一个问题

关于构造单实例类的一个问题

关于构造单实例类的一个问题2010-09-29NorthTibet最近一个朋友问我创建单实例的一个问题,他写了一个C++单实例类CSingleton,其构造函数也是private类型。这个类有一个静态函数:GetInstance,它返回单实例类对象的引用,只要用这个函数声明实例便可以限制对象的复制:// 这一句编译器通不过CSingleton temp = CSingleton::GetInstance();但是编译器始终在上面这行代码处受阻。这到底是为什...
C++类对象的复制-拷贝构造函数

C++类对象的复制-拷贝构造函数

C++类对象的复制-拷贝构造函数2008-01-05 PConline 管宁在学习这一章内容前我们已经学习过了类的构造函数和析构函数的相关知识,对于普通类型的对象来说,他们之间的复制是很简单的,例如:int a = 10;int b =a;自己定义的类的对象同样是对象,谁也不能阻止我们用以下的方式进行复制,例如:#include <iostream>using namespace std;class Test{public:Test(int t...
C++类静态数据成员与类静态成员函数

C++类静态数据成员与类静态成员函数

C++类静态数据成员与类静态成员函数2008-01-05 PConline 管宁在没有讲述本章内容之前如果我们想要在一个范围内共享某一个数据,那么我们会设立全局对象,但面向对象的程序是由对象构成的,我们如何才能在类范围内共享数据呢?这个问题便是本章的重点:声明为static的类成员或者成员函数便能在类的范围内共同享,我们把这样的成员称做静态成员和静态成员函数。下面我们用几个实例来说明这个问题,类的成员需要保护,通常情况下为了不违背类的封装特性,我们是把类成...
用CabLib创建DXF(绘图交换格式)文件

用CabLib创建DXF(绘图交换格式)文件

用CabLib创建DXF(绘图交换格式)文件2010-09-29eastvc介绍什么是DXF绘图交换格式(DXF)文件允许在AutoCAD和其它程序进行图形交换。DXF文件即可以是ASCII格式也可以是二进制格式。 因为ASCII格式的DXF文件比二进制格式更加通用,所以CadLib使用ASCII的DXF格式。什么是CadLibCadLib不是计算机辅助设计(CAD)程序。它是创建用于CAD程序DXF文件的工具。它由两部分组成,一部分是用于创建DXF文件的...
委托、信号和消息反馈的模板实现技术

委托、信号和消息反馈的模板实现技术

委托、信号和消息反馈的模板实现技术2008-01-05憋了很长一段时间的想法,在这里说说,希望听听诸位高手的意见。我写过不少C++程序(当然比起高手还是差远了),写过库也写过客户程序。一般库都会提供一些好用的类供客户程序使用,不少库还可以让客户程序响应库内的某些事件。比如MFC/ATL/VCL提供消息响应,很多ActiveX提供自定义消息响应,甚至是系统底层的中断调用都可以列入这个范畴。然而,正是以上这些“反向”的调用让我觉得很烦恼...
软件框架的利器、TangramMini组件应用教程一:入门

软件框架的利器、TangramMini组件应用教程一:入门

软件框架的利器、TangramMini组件应用教程一:入门2010-09-29 vckbase 骆归由于工作需要,使用了Tangram团队开发的TangramMini组件。自认为对此组件了解得足够深入,并且网上相关此产品的文档不多,所以从今天开始写几篇TangramMini组件教程。TangramMini组件是Tangram团队从Tangram框架产品中演绎出来的迷你微型版本,在非商业产品中可以免费使用,认证后还可以做商业开发,功能强大,主要用于软件产品框...
用CryptoAPI进行数据加密

用CryptoAPI进行数据加密

用CryptoAPI进行数据加密2008-01-05因为过于复杂的加密算法实现起来非常困难,所以在过去,许多应用程序只能使用非常简单的加密技术,这样做的结果就是加密的数据很容易就可以被人破译。而使用Microsoft提供的加密应用程序接口(即Cryptography API),或称CryptoAPI,就可以方便地在应用程序中加入强大的加密功能,而不必考虑基本的算法。本文将对CryptoAPI及其使用的数据加密原理作一简单的介绍,然后给出了用CryptoAP...
软件框架的利器、TangramMini组件应用教程二:安装对象

软件框架的利器、TangramMini组件应用教程二:安装对象

软件框架的利器、TangramMini组件应用教程二:安装对象2010-09-29 vckbase 骆归在上一篇教程中,我们生成了一个XTML文档,并且使用Microsoft Visual C++ 6.0生成了一个Tutorial1对话框程序,在这一篇中,我将介绍怎样在建立的框架上安装自己感兴趣的对象。首先,我先介绍一下TangramMiniCtrl组件怎样在空白区域安装一个对象。此组件提供了方法SetWnd()安装一个窗口对象,在以后的介绍中我统一将空白...
如何用加密API获得纯文本的会话密钥

如何用加密API获得纯文本的会话密钥

如何用加密API获得纯文本的会话密钥2008-01-05运行环境: VC6 SP5, 2000 SP1,NT4 SP3。在通常的中获得会话密钥匙非常重要的。 然而,微软的加密操作API(无论是基础的还是增强的)都不能提供这项功能。 CryptExportKey() 和 CryptImportKey() 各自要求一个有效的密钥句柄来对会话密钥进行加密和解密。 MSDN 展示了一种使用私钥的方法。 但是微软的这个在MSDN中例子相当的长。 下面的这个方法不仅更...
软件框架的利器、TangramMini组件应用教程三:基本使用

软件框架的利器、TangramMini组件应用教程三:基本使用

软件框架的利器、TangramMini组件应用教程三:基本使用2010-09-29 vckbase 骆归在上一篇中我介绍了SetWnd()以及Save()的用法,我相信大家已经知道怎样安装自己的窗口组件了,在这一篇中我将介绍一下TangramMiniCtrl组件的基本方法,以及将Tutorial1对话框程序改造成一个软件的模型。首先,我们来改造这个对话框程序。因为是个框架程序,所以做为一个对话框我们假设这个对话框要有可改变窗体尺寸的要求,我们先更改窗体属性...
C++友元入门教程

C++友元入门教程

C++友元入门教程2008-01-05 PConline 管宁在说明什么是友元之前,我们先说明一下为什么需要友元与友元的缺点:通常对于普通函数来说,要访问类的保护成员是不可能的,如果想这么做那么必须把类的成员都生命成为public(共用的),然而这做带来的问题遍是任何外部函数都可以毫无约束的访问它操作它,c++利用friend修饰符,可以让一些你设定的函数能够对这些保护数据进行操作,避免把类成员全部设置成public,最大限度的保护数据成员的安全。友元能够...
软件框架的利器、TangramMini组件应用教程四:基本应用

软件框架的利器、TangramMini组件应用教程四:基本应用

软件框架的利器、TangramMini组件应用教程四:基本应用2010-09-29 vckbase 骆归上篇中我介绍了SetCaption以及SetAction两个方法,在这一篇中我将做一些基本的应用。在前面我已经将对话框安装了List Control、Tree Control和Edit Box三个控件,现在我计划在左边的Tree Control中插入几个节点,然后点击节点后在Edit Box里显示一些信息,而在List Control中并不显示信息,但是...
<< 61 62 63 64 65 66 67 68 69 70 >>