Welcome 微信登录

首页 / 软件开发 / C++

NT/2000下不用驱动的Ring0代码实现

NT/2000下不用驱动的Ring0代码实现

NT/2000下不用驱动的Ring0代码实现2009-12-16大家知道,Windows NT/2000为实现其可靠性,严格将系统划分为内核模式与用户模式,在i386系统中分别对应CPU的Ring0与Ring3级别。Ring0下,可以执行特权级指令,对任何I/O设备都有访问权等等。要实现从用户态进入核心态,即从Ring 3进入Ring 0必须借助CPU的某种门机制,如中断门、调用门等。而Windows NT/2000提供用户态执行系统服务(Ring 0例程...
在MFC和ATL工程中使用动画GIF

在MFC和ATL工程中使用动画GIF

在MFC和ATL工程中使用动画GIF2011-02-04 vckbase Oleg BykovCPictureEx 是一个为 MFC 程序使用的 C++ 类,对于一些需要使用JPEG 和 GIF 图像格式作为 banner 的应用程序可以借助这个类来实现。对于静态 banner 的显示使用 OleLoadPicture 函数和 IPicture 接口并不难实现,但处理带动画的 GIF实现方法则完全不同。在网上查了很多相关资料,仅仅发现一个可以免费使用的资源...
用VC6实现IE工具栏

用VC6实现IE工具栏

用VC6实现IE工具栏2011-02-04 vckbase vc6man平时一直喜欢用google在IE上的工具栏,于是也琢磨着写一个。国内介绍这个的文章太少,走了不少弯路,于是把自己的一些经验总结一下,希望对后来人有帮助。首先,IE工具栏是一个进程内组件,被动的由IE调用。这样就要先实现一个简单的ATL工程,这个就不用介绍了吧。如果这个都不知道的话,建议还是不要再看下去了。然后,在你的这个ATL类,需要实现三个接口:IObjectWithSite 、ID...
TServerSocket和TClientSocket的使用

TServerSocket和TClientSocket的使用

TServerSocket和TClientSocket的使用2009-12-16在网络编程中,WinSocket API编程是最基本,也是最麻烦的地方(说句不怕影响形象的话,我对此就是一知半解)。但是,如果你是使用C++Builder作为编程平台,你就偷着乐吧,有了BCB,菜鸟变高手!:-)在BCB中,TServerSocket和TClientSocket涵盖了基本的WinSocket编程,其中TServerSocket作为服务器方使用,TClientSo...
一个简单又高效的日志系统

一个简单又高效的日志系统

一个简单又高效的日志系统2011-02-04 vckbase 大唐 三枝花一、程序日志是商品程序中必不可少的部分。在正式商用的程序中一般对于日志都会有一些类似的要求:性能要求运行时日志级别可调整日志文件空间使用安全性问题下面逐一针对上面的问题一起分析程序实现。二、性能问题。客户对程序的要求当然是越高越好。如果对于日志打印采用普通的方法,来一条日志就写一条日志到文件中,这样性能是很低的。因为程序不断的与磁盘进行交付,对系统的冲击很大,有可能会影响到正常的磁盘...
Unicode宽字节字符集

Unicode宽字节字符集

Unicode宽字节字符集2009-12-161. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数?可以调用Microsoft Visual C++的运行期库包含函数_mbslen来操作多字节(既包括单字节也包括双字节)字符串。调用strlen函数,无法真正了解字符串中究竟有多少字符,它只能告诉你到达结尾的0之前有多少个字节。2. 如何对DBCS(双字节字符集)字符串进行操作?函数 描述PTSTR CharNext ( LPCTSTR );...
图形界面上的任意形状图形按钮

图形界面上的任意形状图形按钮

图形界面上的任意形状图形按钮2011-02-04 vckbase effortsboysZYB一、实现原理我们知道windows窗口默认都是矩形,要实现任意形状的窗口就需要自绘。为此从CBUTTON派生一个按钮类CControlButton,重载DrawItem消息处理进行自绘。图片的背景是矩形的,假如我们的按钮图片是圆形的,当把图片绘制上去之后,我们发现多出了背景部分。如何消除背景呢?为了解决这个问题,我们可以用BitBlt 中的MERGEPAINT和S...
Win32调试接口设计与实现浅析

Win32调试接口设计与实现浅析

Win32调试接口设计与实现浅析2009-12-16所谓调试器实际上是一个很宽泛的概念,凡是能够以某种形式监控其他程序执行过程的程序,都可以泛称为调试器。在Windows平台上,根据调试器的实现原理大概可以将之分为三类:内核态调试器、用户态调试器和伪代码调试器。内核态调试器直接工作在操作系统内核一级,在硬件与操作系统之间针对系统核心或驱动进行调试,常见的有SoftICE、WinDbg、WDEB386和i386KD等等;用户态调试器则通过操作系统提供的调试接...
通用的应用程序高级日志系统

通用的应用程序高级日志系统

通用的应用程序高级日志系统2011-02-04 VCKBASE Alex Kucherenko日志模块本文介绍的日志系统包括七个 C++ 类:CLog, CFuncLog, IStoreLog, CWinLog, CFileLog, CAutoCritic, CLogSimpleLock。CLog 是所有日志模块中最主要的一个类,在大多数情况下,这个类在应用程序中最好是单实例的。但并不是必须的。重要性其次的一个类是 CFuncLog,这个类用于对函数调用的...
使用MFC串行化数据和C++对象

使用MFC串行化数据和C++对象

使用MFC串行化数据和C++对象2011-02-04 vckbase JerryZ串行化数据——例子程序:Memo创建一个新的单文档 SDI 应用,视图类选择 CFormView,以便用户可以在窗口中输入。 在界面中创建三个编辑框,然后再添加三个相应的编辑框变量。这三个变量是视图类的成员变量,为了交互数据,文档类中也要创建三个对应的变量。然后,文档类和视图类都要对数据成员进行初始化操作,在文档类中这个工作通常都在 OnNewDocu...
如何和Whois++网连接查询

如何和Whois++网连接查询

如何和Whois++网连接查询2009-12-16在Whois++结构中,由客户负责进行网状漫游,因为每个主机仅通知客户与它相邻的主机是什么,这个协议倒不是复杂,客户打开到一台服务器的连接,发送查询请求,接收应答,关闭连接。客户在接收到应答后进行分析,然后决定下一个联系哪一台主机。这样使得客户必须有一种算法使得客户查询的主机没有重复的,而且能够尽快找到要找的主机。每个Whois++客户应该被配置为自动和一个特定的Whois++服务器联系。这个默认的服务器可...
深入分析MFC文档视图结构(项目实践)

深入分析MFC文档视图结构(项目实践)

深入分析MFC文档视图结构(项目实践)2011-02-04 未知 K_eckel"s mindview文档视图结构(Document/View Architecture)是MFC的精髓,也是Observer模式的具体实现框架之一,Document/View Architecture通过将数据和其表示分开,提供了很好的数据层次和表现层次的解耦。然而,虽然我们使用MFC AppWizard就可以很轻松地获得一个支持Document/View Architect...
VxD技术及其在实时反病毒中的应用

VxD技术及其在实时反病毒中的应用

VxD技术及其在实时反病毒中的应用2009-12-17目前国内的Windows9x平台反病毒产品大多属静态反病毒软件,指导思想是"以杀为主",这一方式的缺点是病毒在被清除之前可能早已造成了严重危害一个好的反病毒软件应该是"以防为主,以杀为辅",在病毒入侵时就把它清除掉,这就是实时反病毒技术。Windows9x使用IntelCPU的Ring0和Ring3两个保护级。系统进程运行于Ring0,因而具有对系统全部资源的访问...
在VC下使用SQLite

在VC下使用SQLite

在VC下使用SQLite2011-02-07 vckbase 王骏一、SQLite简介SQLite 是用C语言编写的开源数据库,主要用于嵌入式,你也可以把它集成在自己的桌面程序中,也有人将其替代Access,用作后台数据库。SQLite 支持多数SQL92标准,例如:索引、限制、触发和查看支持。支持 NULL、INTEGER、REAL、TEXT 和 BLOB 数据类型,支持事务。二、下载SQLiteSQLite可以到官方站点下载包括:Linux,Mac O...
<< 91 92 93 94 95 96 97 98 99 100 >>