内容列表
- WIN32汇编:2.消息框
- 第二课 消息框
在本课中,我们将用汇编语言写一个 Windows 程序,程序运行时将弹出一个消息框并显示"Win32 assembly is great!"。
理论:
Windows 为编写应用程序提供了大量的资源。其中最重要的是Windows API (Application Programming Interface)。 Windows API是一大组功能强大的函数,它们本身驻扎
- 分类:编程语言 查阅全文
- 1.基本概念
- 第一课 基本概念
我们先假设您已知道了如何使用MASM。如果您还不知道的话,请下载 win32asm.exe ,并请仔细研读其中所附带的文档资料。好,如果您已准备就绪,我们这就开始吧!
理论:
WIN32 程序运行在保护模式下的,保护模式的历史可以追溯到 80286。而今 80286 已成为了历史。所以我们将只把精力集中于 80386 及后续的X86 系列 CPU。Windows 把
- 分类:编程语言 查阅全文
- 利用安装程序防止软件非法拷贝
- 利用安装程序防止软件非法拷贝
每个用户都不希望自己开发的软件被别人轻易的拷贝使用,自然而然崐想起了要对软件进行加密。本文主要介绍一种通过安装程序来拷贝软件,崐防止软件非法拷贝的方法。经过实践证明这种方法非常适用于需要把软件崐安装到硬盘上才能使用的情况。一、工作原理通过在被加密的软件中设置一个特殊的单元,由一个安装程序将被加崐密的软件装入指定的硬盘(C、D、E等)分区上。在拷贝装入硬盘的过
- 分类:编程语言 查阅全文
- _masta_的 Win95 汇编教程 Part 0
- - -----=========----- -------==========================================-------
- 分类:编程语言 查阅全文
- Win32asm 初学者常见问答集
-
faqcn
Win32asm 初学者常见问答集
作者:Iczelion 中文版翻译:Neo
- 分类:编程语言 查阅全文
- 走近C#---CNET访问Anders Hejlsberg
- 走近C#
日期: 2001年04月23日
在CNET News.com对微软公司最杰出的软件设计师 Hejlsberg的采访过程中,双方就C#的起源、Web服务的未来等问题进行了探讨。
当微软公司需要一项新技术来确保在软件业的统治地位时,它需要Anders Hejlsberg的帮助。
对于成千上万的使用Borland Turbo Pascal和 Delphi进行编程的软
- 分类:编程语言 查阅全文
- _masta_的 Win95 汇编教程 Part 1
- - -----=========----- -------======
- 分类:编程语言 查阅全文
- WIN32汇编: 6.处理键盘消息
- 第六课 处理键盘输入消息
在本课中,我们将要学习WINDOWS程序是如何处理键盘消息的。
理论:
因为大多数的PC只有一个键盘,所以所有运行中的WINDOWS程序必须共用它。WINDOWS 将负责把击键消息送到具有输入焦点的那个应用程序中去。尽管屏幕上可能同时有几个应用程序窗口,但一个时刻仅有一个窗口有输入焦点。有输入焦点的那个应用程序的标题条总是高亮度显示的。 实际上您可以从两个角
- 分类:编程语言 查阅全文
- WIN32汇编: 7.处理鼠标输入消息
- 第七课 处理鼠标输入消息
本课中我们将学习如何在我们的窗口过程函数中处理鼠标按键消息。示例程序演示了如何等待左键按下消息,我们将在按下的位置显示一个字符串。
理论:和处理键盘输入一样,WINDOWS将捕捉鼠标动作并把它们发送到相关窗口。这些活动包括左、右键按下、移动、双击等(译者注:新式鼠标还包括滚轮消息WM_WHEEL)。WINDOWS并不像处理键盘输入那样把所有的鼠标消息都导向有输入
- 分类:编程语言 查阅全文
- WIN32汇编: 5.学习更多的关于文本的知识
- 第五课 学习更多关于“绘制”文本串的知识
我们将做更多的实践去了解有关文本的诸多属性如字体和颜色等。
理论:
Windows 的颜色系统是用RGB值来表示的,R 代表红色,G 代表绿色,B 代表兰色。如果您想指定一种颜色就必须给该颜色赋相关的 RGB 值,RGB 的取值范围都是从 0 到 255,譬如您想要得到纯红色,就必须对RGB赋值(255,0,0),纯白色是 (255,255
- 分类:编程语言 查阅全文
- _masta_的 Win95 汇编教程 part 2
- -  
- 分类:编程语言 查阅全文
- WIN32汇编: 8.菜单
- 第八课 菜单
本课中我们将在我们的应用程序中加入一个菜单。
理论:菜单可以说是WINDOWS最重要的元素之一。有了它,用户可以方便地选择操作命令.用户只要细读一下所有的菜单项就可以明了应用程序所提供的大概功能,而且可以立即操作,无须去阅读手册了.正因为菜单给了用户一种方便的方式,所以您在应用程序中加入菜单时就要遵守一般的标准.譬如:一般头两个菜单项是"File"和"Edit",最后是"H
- 分类:编程语言 查阅全文
- 怎样弹出 CD-ROM
- 弹出 CD-ROM
Const CDROM = 4For Each d in CreateObject("Scripting.FileSystemObject").Drives If d.DriveType = CDROM Then Eject d.DriveLetter & ":\" End IfNextSub Eject(
- 分类:编程语言 查阅全文
- WIN32汇编: 13.内存映射文件
- 第十三课 内存映射文件
本课中我们将要讲解内存映射文件并且演示如何运用它。您将会发现使用内存映射文件是非常简单的。
理论:
如果您仔细地研究了前一课的例子, 就会发现它有一个严重的缺陷:如果您想读的内容大于系统分配的内存块怎么办?如果您想搜索的字符串刚好超过内存块的边界又该如何处理?对于第一个问题,您也许会说,只要不断地读就不解决了吗。至于第二个问题,您又会说在内存块的边界处做一些特别
- 分类:编程语言 查阅全文
- c++ builder 动态设定odbc数据源
- 本文以access为例需要文件 odbcinst.h(bcb或vc的include目录) odbccp32.dll(winnt\system32\目录) implib.exe(通过dll生成lib库) coff2omf.exe (将coff库转化为omf库)
首先将上面文件拷贝到工程目录,执行下面命令:implib.exe odbccp32.lib odbccp32.dllcoff2
- 分类:编程语言 查阅全文
- C++Builder:在运行时创建BDE别名
-
C++Builder:在运行时创建BDE别名 通过BDE别名来连接数据库,确实很方便,然而,那些没有确定的数据库,我们却无法给它创建别名。而大多数时候,当我们把程序交给别人真正投入使用时,别名的路径也是不确定的。这就要求我们在程序运行时动态连接到数据库。 现在,假设在程序运行目录下有个通讯录Friends.db,我们要通
- 分类:编程语言 查阅全文
- Effective C++ 2e Item6
- 条款6:析构函数里对指针成员调用delete
大多数情况下,执行动态内存分配的的类都在构造函数里用new分配内存,然后在析构函数里用delete释放内存。最初写这个类的时候当然不难做,你会记得最后对在所有构造函数里分配了内存的所有成员使用delete。
然而,这个类经过维护、升级后,情况就会变得困难了,因为对类的代码进行修改的程序员不一定就是最早写这个类的人。而增加一个指针成员意味着几乎都要进
- 分类:编程语言 查阅全文
- Effective C++ 2e Item5
- 内存管理
C++中涉及到的内存的管理问题可以归结为两方面:正确地得到它和有效地使用它。好的程序员会理解这两个问题为什么要以这样的顺序列出。因为执行得再快、体积再小的程序如果它不按你所想象地那样去执行,那也一点用处都没有。“正确地得到”的意思是正确地调用内存分配和释放程序;而“有效地使用”是指写特定版本的内存分配和释放程序。这里,“正确地得到”显得更重要一些。
然而说到正确性,C++其实从C继承
- 分类:编程语言 查阅全文
- c++ builder:检测活动桌面是否激活
- 前一段时间,小弟编写一个关于壁纸的软件,因为要确认是否启动了Active Desktop,所以写了下面的代码。或许大家也会用得着.bool __fastcall TWallFrm::ActiveDesktop(void){ /*检测是否启动了Active Deskt
- 分类:编程语言 查阅全文
- Effective C++ 2e Item3
- 条款3:尽量用new和delete而不用malloc和free
malloc和free(及其变体)会产生问题的原因在于它们太简单:他们不知道构造函数和析构函数。
假设用两种方法给一个包含10个string对象的数组分配空间,一个用malloc,另一个用new: string *stringArray1 = static_cast<string*>(mall
- 分类:编程语言 查阅全文