Welcome 微信登录

首页 / 软件开发 / C++

KV300技术分析(有关硬盘锁)

KV300技术分析(有关硬盘锁)

KV300技术分析(有关硬盘锁)2008-01-05注:此程序有一定的风险性。老妖也没有试过。希望大家考虑清楚了再行事。要不是亲自试一下,你一定不会相信,运行下面的程序,你的机器将不能从软盘启动,更不能从硬盘启动。而这个程序仅仅修改了你的硬盘的扩展DOS分区的首隐藏扇区。code segmentassume cs:code,ds:codeorg 100hbegin:xor ax,axmov dl,80hint 13h ;复位硬盘mov ax,201hmov...
Windows NT下实现对I/O地址的访问

Windows NT下实现对I/O地址的访问

Windows NT下实现对I/O地址的访问2008-01-05Windows NT 操作设置的进程模式会使运行在其中的应用程序访问I/O地址的指令引起保护性的失败。这使得应用程序需要附以一个设备驱动程序进行I/O操作。设备驱动程序运行在内核模式,这使得在这种状态的中运行的进程可以执行I/O操作。---- Windows 95/98 是仅为 Intel 类型机器设计的,没有额外复杂的I/O需求,而Windows NT 被设计成可以在不同机器机构上进行移植。...
CB下实现对端口读写的两种方法

CB下实现对端口读写的两种方法

CB下实现对端口读写的两种方法2008-01-05在C++Builder中,不能够使用Turbo C中的outputb和inputb端口读写函数。但我们可以有另外两种办法实现这个功能。本文介绍怎样在C++Builder下实现端口读写,并给出两种方法的源代码。在C++Builder下对端口的读写共有两种方法,一种为内嵌汇编语言,另一种为使用__emit__函数。1 通过内嵌汇编语言实现端口的读写在C++Builder中,汇编语句必须被包含在以关键字asm为起...
Windows中断编程

Windows中断编程

Windows中断编程2008-01-05一、前 言Windows提供强大的功能以及友好的图形用户界面(GUI),使得它不仅广泛的用作管理事务型工作的支持平台,也被工业领域的工程人员所关注。但Windows3.1并非基于优先级来调度任务,无法立即响应外部事件中断,也就不能满足工业应用环境中实时事件处理和实时控制应用的要求。因此,如何在Windows环境中处理外部实时事件一直是技术人员尤其是实时领域工程人员所关注的问题。目前已有的方法大都采用内挂实时多任务内...
在CB6下基于api函数编写串口通信程序简介

在CB6下基于api函数编写串口通信程序简介

在CB6下基于api函数编写串口通信程序简介2008-01-051-在C++ Builder 6.0下基于api函数编写串口通信程序简介:在dos/win95/win98的年代,操作对串口是不保护的,也就是说将串口的的资源完全开放给用户,用户可以用直接操作硬件的函数(比如说TC2.0下的inport()和outport()函数) 跟串口直接打交道,这时候用户使用直接操作串口的函数怎样"折磨"串口都是没有问题的,操作系统根本就不管不问,对...
奇技淫巧C++之返回值重载

奇技淫巧C++之返回值重载

奇技淫巧C++之返回值重载2008-01-05C++当然是不能仅仅通过返回值重载函数的,但是,我们往往会想:要是支持返回值重载就好了。现在,我就从C++的某个颇受争议的角落,为您发掘一点东西。假设有这样一个函数:type getvalue(const DBField& fd);可是,DBField实际的数据类型对于getvalue来说,并不了解,一个常见的解决方案是:template<typename T>T getvalue(cons...
More Effective C++之智能指针

More Effective C++之智能指针

More Effective C++之智能指针2008-01-05韩羽智能指针具有非常强大的能力,谨慎而明智的选择能带来极大的好处。我不否认智能指针的能力,虽然我在之前的否认过auto_ptr。可能由于我自身能力的限制,体会不到auto_ptr的好处,但这样的可能性我觉得已经不大了。但auto_ptr是最简单的智能指针,在它的周围存在大量的作品,这些作品包括Boost、Loki、ACE等等,但是可惜的是目前没有一个我能够说我很熟悉,那么本篇只是作为一个入门...
乌托邦式接口和实现分离技术

乌托邦式接口和实现分离技术

乌托邦式接口和实现分离技术2008-01-05《Imperfect C++》中展示了一种叫“螺栓”的技术,然而,这本书中的讨论并不足够深入。当然,我也相信Matthew是故意的,从而让我们这些“三道贩子”(Matthew自称是二道贩子)也能够获得一点点成就感。考虑这样一个接口设计:struct IRefCount;struct IReader : public IRefCount;在Reader中实现接口:<...
C++数据类型的属性与限制

C++数据类型的属性与限制

C++数据类型的属性与限制2008-01-05 天极 谢启东在C++中,每一种内置的数据类型都拥有不同的属性,其中包含的信息对设计程序来说是非常重要的,下面来看一下,<limits>库是怎样有助于访问这些信息的。C++中约有10种截然不同的整数类型及超过3种的浮点类型,而每种数据类型都有不同的数值属性,如数值范围、能表示的最大位数、或各自的精度等等,这些属性对金融、科学、图形、数字信号处理等程序来说是极其重要的。本文讨论使用<limits...
C++多态技术的实现和反思

C++多态技术的实现和反思

C++多态技术的实现和反思2008-01-05 程序员杂志 杨喜敏 孟岩面向对象技术最早出现于1960年代的Simula 67系统,并且在1970年代保罗阿托实验室开发的Smalltalk系统中发展成熟。然而对于大部分程序员来说,C++是第一个可用的面向对象程序设计语言。因此,我们关于面向对象的很多概念和思想直接来自于C++。但是,C++在实现面向对象中关键的多态性时,选择了与Smalltalk完全不同的方案。其结果是,尽管在表面上两者都实现了相似的多态性...
C++内存管理详解

C++内存管理详解

C++内存管理详解2008-01-05伟大的Bill Gates 曾经失言:640K ought to be enough for everybody — Bill Gates 1981程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。1、内存分配方式内存分配方式有三种:(1)从静态存储区域分配。内...
保持C/C++程序代码的可伸缩性

保持C/C++程序代码的可伸缩性

保持C/C++程序代码的可伸缩性2008-01-05 天极 谢启东 在今天,已有许多的32位应用程序感到,在32位平台上可用的虚拟内存受到了一定的限制,对程序开发者来说,即使是开始关注64位平台时,也不得不维护软件的32位版本,这就需要一种方法,以使代码的两个版本都保持相当的可伸缩性。 目前的内存剖析工具能帮助确定,当程序达到峰值内存使用量时,都发生了什么,但是这些工具都过于关注已分配的内存块,而不是已提交的虚拟内存地址空间,而这两种衡量标准没有直...
浅议C++的垃圾回收方法

浅议C++的垃圾回收方法

浅议C++的垃圾回收方法2008-01-05许多 C 或者 C++ 程序员对垃圾回收嗤之以鼻,认为垃圾回收肯定比自己来管理动态内存要低效,而且在回收的时候一定会让程序停顿在那里,而如果自己控制内存管理的话,分配和释放时间都是稳定的,不会导致程序停顿。最后,很多 C/C++ 程序员坚信在C/C++ 中无法实现垃圾回收机制。这些错误的观点都是由于不了解垃圾回收的算法而臆想出来的。其实垃圾回收机制并不慢,甚至比动态内存分配更高效。因为我们可以只分配不释放,那么分...
C++箴言:从模板中分离出参数无关的代码

C++箴言:从模板中分离出参数无关的代码

C++箴言:从模板中分离出参数无关的代码2008-01-05 templates(模板)是节省时间和避免代码重复的极好方法。不必再输入20个相似的 classes,每一个包含 15 个 member functions(成员函数),你可以输入一个 class template(类模板),并让编译器实例化出你需要的 20 个 specific classes(特定类)和 300 个函数。(class template(类模板)的 member functio...
C++之父Bjarne谈C++中的STL模板

C++之父Bjarne谈C++中的STL模板

C++之父Bjarne谈C++中的STL模板2008-01-05 天极 陶刚在1994年,我主要关心的是如何使ISO C++标准尽可能地好--同时在它所包含的特性和规范的质量两个方面--并获得多数人的同意。即使人们不接受某种规范,也不会影响它(规范)的良好性。ISO标准没有强制力,因此有些人认为自己不值得浪费时间来适应它,除非(群体)社团的压力能够使他们确信该规范的价值。对于一个实现者来说,适应环境是很重要的额外工作,因此适应环境是一个有意识的决定,并且需...
<< 171 172 173 174 175 176 177 178 179 180 >>