自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 一个例子

一个例子这一章,我们要把我们已学的知识集合起来。具体来讲,我们来写一个使用ODBC APIs的程序.为简单起见,这个程序中我使用Microsoft的Access数据库(Microsoft Access 97) .下载例子源程序. 注意:如果你使用的windows.inc 是1.18及其以下版本,在开始编译之前要修改其中的一个小bug.在windows.inc中查找 "SQL_NULL_

2001-06-18 23:59:00 2569

原创 准备与使用语句

准备与使用语句继续我们的学习,在这一章,我们来看看如何通过ODBC来操作数据源.在上一章,我们已学习了第一步,怎样连接一个数据源。一个连接定义了用户与数据源的数据通道.它是静态的.如果要想操作数据源,我们就必须使用语句(statement).可以认为语句就是发给数据源的命令.这个"命令"必须用SQL写成.通过使用语句,我们就可以修改数据源的结构、在其中执行查询、修改及删除数据.准备及使

2001-06-18 23:58:00 2313

原创 获得结果

获得结果在本章中,我们来学习如何获得SQL语句的执行结果。我们称由查询返回的一组记录为一个 结果集(result set) (或在VB中被称为recordset).检索结果通常分为以下几个步骤:确认一个结果集是否可用。 将结果集的列绑定在适当的变量上。 取得行 完成对结果集的操作后,我们必须调用SQLCloseCursor来销毁它.确认一个结果集是否可用有时在执

2001-06-18 23:58:00 2459

原创 连接数据源

连接数据源本教程中,我们将学习使用ODBC APIs的细节.因为我们的程序并不与ODBC驱动程序直接通信,而是通过ODBC管理器来定义一系列APIs供你的程序调用以完成工作,所以我们需要包含odbc32.inc和odbc32.lib文件,当然还有windows.inc。连接数据源需要以下几步:分配一个环境句柄(environment handle). 在进行每个ODBC任务(s

2001-06-18 23:57:00 2907 1

原创 ODBC 基础

ODBC 基础这是使用 win32asm进行数据库编程系列的第一份教程。在如今的IT界,数据库编程变的越来越重要,所以我们不能再忽视它。但如今有很多种数据库在使用,如果我们为了实现win32下数据库汇编语言编程而学习各种数据库文件格式,所花时间大概称得上“永恒”。 幸运的是,Microsoft的一项技术使得我们得以摆脱这个大麻烦。它被称为ODBC,是开放式数据库互连(Open Databa

2001-06-18 23:48:00 3035 1

原创 虚拟8086模式的内存管理

虚拟8086模式的内存管理下边我们用到的V86即指虚拟8086模式。 在以前的教程中,你学习了怎样模拟V86中断,但还有一个问题没有解决:在VxD和V86代码之间交换数据。我们将在此学习如何使用V86内存管理器来实现这个功能。在这里下载例子程序理论假如你的VxD和一些V86程序一起运行,如何传送大量数据到V86程序中或从V86程序中传送大量数据迟早是一个大问题。通过寄存器传送大

2001-06-18 23:40:00 2301

原创 请求执行时间段与Shell函数

请求执行时间段与Shell函数下载例子程序理论:请求执行时间段通常被简称为"appy time"。是指当系统VM稳定到充许VxDs和ring-3级别的应用软件(特别是16-bit的应用软件)交互时的时间段。例如,在一个特定时间段,VxDs能加载并调用在16-bit Dlls中的函数。这个appy time在Windows 3.x中是无效的。在Windows3.x,一个VxD能包

2001-06-18 23:39:00 2145

原创 客户寄存器结构

客户寄存器结构我们将学习本教程中另外一个重要的结构,叫客户寄存器结构。在本文中,V86指虚拟8086模式。在这里下载例子程序理论VxDs与正常的win32/win16/DOS应用程序有很大不同。大多数情况下,当其他应用程序正常工作时,它们是休眠的。它们象一个监管者一样工作,其作用是监视ring-3应用程序并在其出错时改正它们。下面是其工作时的典型的情况:1、中断发生时2、V

2001-06-18 23:39:00 2160

原创 DeviceIoControl接口

DeviceIoControl接口在这一节中我们将要关于学习动态VXD,特别是如何创建,加载和使用。点击这里下载例子VxD接口VxD总共提供了4种接口。l         VxD services                    VxD服务l         V86 Interface                   V86接口l         Protec

2001-06-18 23:37:00 2640

原创 WIN32汇编: 30.Win32调试API第三部分

第30课: Win32调试API 第三部分在本章中,我们将继续探讨win32调试api。特别地,我们将学习如何去跟踪被调试程序.下载 例子. 理论:如果你以前使用过调试器,那么你应对跟踪比较熟悉。当"跟踪"一个程序时,程序在每执行一条指令后将会停止,这使你有机会去检查寄存器/内存中的值。这种单步运行的官方定义为跟踪(tracing)。单步运行的特色是由CPU本身提供的。标志寄存器的

2001-06-17 20:32:00 2215

原创 WIN32汇编: 31.列表视图控件

第三十一课 列表视图控件本课中我们将学习如何创建和使用列表视图控件。 理论:列表视图控件和树型视图、丰富文本编辑控件一样是通用控件的一种。可能您都已经知道了列表视图控件,只不过是不知道它的确切名字而已。列表视图控件可以用来很好地显示项目。在这方面它和列表框相同,只不过它的性能更强。有两种方法创建一个列表视图控件。第一种也是最简单的方法是:用资源编辑器来创建它。用该种方法只是不要忘记

2001-06-17 20:32:00 2892

原创 WIN32汇编: 29.Win32调试API第二部分

第29课: Win32调试API 第二部分我们继续Win32调试API的话题。在本章中,我们将要学习如何修改被调试程序。下载 the example 理论:在前面一章中,我们学会了如何装载被调试的进程以及如何处理进程中发生的事件。为了有实际用途,我们的程序应具有修改被调试程序的能力。有好几个API函数用于这一目的。ReadProcessMemory该函数允许你去读指定的进程

2001-06-17 20:31:00 2243

原创 WIN32汇编: 27.工具提示控件

第27课 工具提示控件我们将学习工具提示控件:它是什么如何创建和使用.下载例子理论:工具提示是当鼠标在某特定区域上停留时显示的一个矩形窗口.工具提示窗口包含一些编程者想要显示的文本.在这点上,工具提示同状态栏的作用是一样的,所不同的是工具提示当单击或者远离指定区域的时候就会消逝,你可能熟悉与工具栏相关联的工具提示,那些"提示"是工具栏控件提供的便利.如果你想要在其它窗口、控件中

2001-06-17 20:30:00 2585

原创 WIN32汇编: 28.Win32调试API第一部分

第二十八课: Win32调试API 第一部分 在本教程中,我们将学习Win32提供给开发者的用于调试的原语. 在教程的结尾,我们将学习如何调试一个进程. 下载 例子程序.理论:Win32有一些供程序员使用的API,它们提供相当于调试器的功能. 他们被称作Win32调试API(或原语).利用这些API,我们可以:加载一个程序或捆绑到一个正在运行的程序上以供调试 获得被

2001-06-17 20:30:00 2274

原创 WIN32汇编: 25.位图初步

第二十五课:位图初步在这一课,我们将学习怎样在程序中使用位图。 更准确地说,我们要学习的是怎样在一个窗口的客户区中显示位图。 理论位图就是存贮于电脑中的图片。位图文件有相当多的格式(译者:如.BMP.JPG.GIF.PIC 等)但Windows仅支持 Windows Bitmap Graphics 格式,即BMP文件。 本课所指的位图也是BMP文件。 使用位图最简单的方法就是把它定义在

2001-06-17 20:29:00 2512

原创 WIN32汇编: 26.启动画面

第26章: 启动画面    上一章我们学习了位图的使用.在这一章我们要用上帝赋予我们的创造力来融会贯通上一章我们学到的知识.那就是研究如何用位图来创建启动画面. 你可以在这里下载示范: the example. 理论    首先,我们先要搞清楚什么是启动画面.举个简单的例子:我们启动某些作的专业一点的程序时(比如Netscape,Adobe Acrobat等)会先跳出一个启动画面.上面

2001-06-17 20:29:00 2107

原创 WIN32汇编: 23.系统托盘中的快捷图标

第二十三课 系统托盘中的快捷图标本课中,我们将学习如何把小图标放到系统托盘中去以及如何创建和使用弹出式菜单。 理论:系统托盘是指任务条中的一个方形区域,在该区域中可以放入一些小图标,通常您可以在此处看到系统提供的最新时间。您自己当然也可以把快捷小图标放到此处。下面是这么做的步骤: 设置NOTIFYICONDATA型的结构体变量的成员变量的值: cbSize   该结构体

2001-06-17 20:28:00 2266

原创 WIN32汇编: 24.WINDOWS钩子函数

第二十四课 WINDOWS钩子函数本课中我们将要学习WINDOWS钩子函数的使用方法。WINDOWS钩子函数的功能非常强大,有了它您可以探测其它进程并且改变其它进程的行为。 理论:WINDOWS的钩子函数可以认为是WINDOWS的主要特性之一。利用它们,您可以捕捉您自己进程或其它进程发生的事件。通过“钩挂”,您可以给WINDOWS一个处理或过滤事件的回调函数,该函数也叫做“钩子函数”,

2001-06-17 20:28:00 2353

原创 WIN32汇编: 22.超类化

第22课 超类化在这一讲我们将学习什么是超类化以及它有什么作用;同时你还会学到怎样在自己的窗口中用Tab键在控件中切换这一技巧。理论:在你的程序生涯中你肯定遇到过这样的情况,你需要一系列的控件,但它们之间却只有一点点的不同。例如,你可能需要10个只接受数字的 Edit 控件,当然你可以通过多种方法来达到这个目的。创建自己的类并用它实例化为那些控件 创建那些 Edit

2001-06-17 20:27:00 1950

原创 WIN32汇编: 20.窗口子类化

第二十课 窗口子类化在这一讲,我们将学习什么是窗口子类化和怎样按你所想要的方式方便地使用它。理论:如果你曾经在 Windows 环境下编过程序,有时候就会发现:有一个现成的窗口,几乎有你所需要的全部功能,但还不完全一样(否则就没有必要讲这一节了)。你曾遇到过这样的处境吗,如果你需要一个具有过滤特殊字符功能的 Edit 控件。当然最直接的方法就是自己用代码来实现,但这的确是一个费

2001-06-17 20:26:00 2115

原创 WIN32汇编: 21.管道

第二十一课 管道这一讲将探索一下管道,看看它是什么、有什么用。为使之更加生动有趣,我将用怎样改变 Edit 控件的背景色和文本颜色来说明此技术。理论:管道,顾名思义就是有两个端的通道。可以使用管道在进程间、同一进程内进行数据交换,就像手提式无线电话机一样。把管道的一端给另一方,他就可以借助管道和你通讯了。有两种管道,即有名管道和匿名管道。匿名管道就是没有名字的管道了,也就是

2001-06-17 20:26:00 1624 1

原创 WIN32汇编: 18.通用控件

第十八课 通用控件本课中我们将学习什么是通用控件和如何使用它们。 理论:WIN95相对于WIN3X有几个加强的用户界面控件。其实在WIN95正式发行前这些控件就在使用,譬如:状态条、工具条等。以前程序员要自己去编程使用它们,现在微软已经把它们包含到了WIN9X和WINNT中了。 Toolbar ---工具条 Tooltip ---提示文本 Status bar ---状

2001-06-17 20:25:00 1324

原创 WIN32汇编: 19.树型视图控件

第十九课 树型视图控件本课中,我们将学习如何使用树型视图控件。另外还要学习如何在树型视图中完成拖-拉动作,以及如何使用图象列表。 理论:树型视图是一种特别的窗口,我们可以使用它一目了然地表示某种层次关系。譬如象在资源管理器中左边窗口中的就是树型视图。您可以调用CreateWindowEx来创建树型视图,传递一个类名“"SysTreeView32"”,或者您也可以把它放到一个对话框中去。

2001-06-17 20:25:00 1445

原创 WIN32汇编: 17.动态链接库

第十七课 动态链接库本课中,我们将学习DLLs,它们到底是什么和如何创建它们。  理论:如果您编程的时间非常长,就会发现很多的程序之间其实有相当多的重复代码。每编一个程序就重写一遍这些代码既没必要又浪费时间。在DOS时代,一般的做法是把这些重复的代码写成一个个的函数,然后把它们按类别放到不同的库文件中去。当要使用这些函数时,只要把您的目标文件(.obj)文件和先前存放在库文件中的函

2001-06-17 20:24:00 1221

原创 WIN32汇编: 16.事件对象

第十六课 事件对象本课中我们将要学习事件对象以及如何在多线程编程中如何使用同步对象。 理论:上一课中我们演示了如何用WINDOWS消息在不同的线程之间进行通讯。另外的两种,即:使用全局变量和事件对象,将在本课中讲解。 事件对象就像一个开关:它只有两种状态---开和关。当一个事件处于”开”状态,我们称其为”有信号”否则称为”无信号”。您可以在一个线程的执行函数中创建一个事件对象,然后观察

2001-06-17 20:23:00 844

原创 WIN32汇编: 14.进程

第十四课 进程本课中我们将学习:什么是进程?如何产生和终止一个进程? 初步知识:进程是什么?下面是我从WIN32 API指南中节选的解释: “一个进程是一个正在执行的应用程序,它包含有:私有的虚拟地址空间、代码、数据和其它的操作系统资源,譬如进程可以存取的管道、文件和同步对象等等。”从上面的定义中您可以看到,一个进程拥有几个对象:地址空间、执行模块和其它该执行程序打开或创建的任

2001-06-17 20:22:00 889

原创 WIN32汇编: 15.多线程教程

第十五课 多线程编程本课中,我们将学习如何进行多线程编程。另外我们还将学习如何在不同的线程间进行通信。 理论:前一课中,我们学习了进程,其中讲到每一个进程至少要有一个主线程。这个线程其实是进程执行的一条线索,除此主线程外您还可以给进程增加其它的线程,也即增加其它的执行线索,由此在某种程度上可以看成是给一个应用程序增加了多任务功能。当程序运行后,您可以根据各种条件挂起或运行这些线程,尤其

2001-06-17 20:22:00 1147

原创 WIN32汇编: 13.内存映射文件

第十三课 内存映射文件本课中我们将要讲解内存映射文件并且演示如何运用它。您将会发现使用内存映射文件是非常简单的。 理论:如果您仔细地研究了前一课的例子, 就会发现它有一个严重的缺陷:如果您想读的内容大于系统分配的内存块怎么办?如果您想搜索的字符串刚好超过内存块的边界又该如何处理?对于第一个问题,您也许会说,只要不断地读就不解决了吗。至于第二个问题,您又会说在内存块的边界处做一些特别

2001-06-17 20:21:00 1173

原创 WIN32汇编: 12.内存管理和文件输入输出

第十二课 内存管理和文件输入/输出本课中我们将学习基本的内存管理和文件输入/输出操作方面的知识。另外我们还将用上课学的通用对话框作为我们的显示“设备”。 理论: 从用户的角度来看,WIN32的内存管理是非常简单和明了的。每一个应用程序都有自己独立的4G地址空间,这种内存模式叫做“平坦”型地址模式,所有的段寄存器或描述符都指向同样的起始地址,所有的地址偏移都是32位的长度,这样一个应

2001-06-17 20:20:00 1268

原创 WIN32汇编: 10.把对话框作为主界面

第十课 以对话框为主要界面的应用程序现在我们开始学习一些有关GUI编程的有趣的部分, 即:以对话框为主要界面的应用程序。我们将分两课来讲述这一过程 理论:如果您仔细关注过前一个程序就会发现:您无法按TAB键从一个子窗口控件跳到另一个子窗口控件,要想转移的话只有 用鼠标一下一下地去点击。对用户来说这是不友好的。另一件事是如果您象前一课中那样把主窗口的背景色从白色改成 灰色,为了子窗口控件

2001-06-17 20:19:00 1481

原创 WIN32汇编: 11.进一步学习对话框

第十一课 进一步学习对话框本课中我们将进一步学习对话框。特别地我们将要探讨如何把对话框当成输入设备。如果您学习了上一课,那就会发现本课的例子只有少量的改动,就是把我们的对话框窗口附属到主窗口上。另外,我们还要学习通用对话框的用法。 理论:把对话框当成一个输入设备来用确实是非常地简单,创建完主窗口后,您只要调用函数 CreatedialogParam 或 DialogBoxParam 就

2001-06-17 20:19:00 1089

原创 WIN32汇编: 9.子窗口控件

第九课 子窗口控件本课中我们将探讨控件,这些控件是我们程序主要的输入输出设备。 理论:WINDOWS 提供了几个预定义的窗口类以方便我们的使用。大多数时间内,我们把它们用在对话框中,所以我们一般就它们叫做子窗口控件。子窗口控件会自己处理消息,并在自己状态发生改变时通知父窗口。这样就大大地减轻了我们的编程工作,所以我们应尽可能地利用它们。本课中我们把这些控件放在窗口中以简化程序,但是大多

2001-06-17 20:18:00 1114

原创 WIN32汇编: 8.菜单

第八课 菜单本课中我们将在我们的应用程序中加入一个菜单。 理论:菜单可以说是WINDOWS最重要的元素之一。有了它,用户可以方便地选择操作命令.用户只要细读一下所有的菜单项就可以明了应用程序所提供的大概功能,而且可以立即操作,无须去阅读手册了.正因为菜单给了用户一种方便的方式,所以您在应用程序中加入菜单时就要遵守一般的标准.譬如:一般头两个菜单项是"File"和"Edit",最后是"H

2001-06-17 20:17:00 1043

原创 WIN32汇编: 7.处理鼠标输入消息

第七课 处理鼠标输入消息本课中我们将学习如何在我们的窗口过程函数中处理鼠标按键消息。示例程序演示了如何等待左键按下消息,我们将在按下的位置显示一个字符串。 理论:和处理键盘输入一样,WINDOWS将捕捉鼠标动作并把它们发送到相关窗口。这些活动包括左、右键按下、移动、双击等(译者注:新式鼠标还包括滚轮消息WM_WHEEL)。WINDOWS并不像处理键盘输入那样把所有的鼠标消息都导向有输入

2001-06-17 20:16:00 1279

原创 WIN32汇编: 6.处理键盘消息

第六课 处理键盘输入消息在本课中,我们将要学习WINDOWS程序是如何处理键盘消息的。理论:因为大多数的PC只有一个键盘,所以所有运行中的WINDOWS程序必须共用它。WINDOWS 将负责把击键消息送到具有输入焦点的那个应用程序中去。尽管屏幕上可能同时有几个应用程序窗口,但一个时刻仅有一个窗口有输入焦点。有输入焦点的那个应用程序的标题条总是高亮度显示的。 实际上您可以从两个角

2001-06-17 20:14:00 1211

原创 WIN32汇编: 5.学习更多的关于文本的知识

第五课 学习更多关于“绘制”文本串的知识我们将做更多的实践去了解有关文本的诸多属性如字体和颜色等。 理论:Windows 的颜色系统是用RGB值来表示的,R 代表红色,G 代表绿色,B 代表兰色。如果您想指定一种颜色就必须给该颜色赋相关的 RGB 值,RGB 的取值范围都是从 0 到 255,譬如您想要得到纯红色,就必须对RGB赋值(255,0,0),纯白色是 (255,255

2001-06-17 20:13:00 907

原创 WIN32汇编: 4.绘制文本

第四课 绘制文本本课中,我们将学习如何在窗口的客户区“绘制”字符串。我们还将学习关于“设备环境”的概念。理论:Windows 中的文本是一个GUI(图形用户界面)对象。每一个字符实际上是由许多的像素点组成,这些点在有笔画的地方显示出来,这样就会出现字符。这也是为什么我说“绘制”字符,而不是写字符。通常您都是在您应用程序的客户区“绘制”字符串(尽管您也可以在客户区外“绘制”)。W

2001-06-17 20:11:00 1143

原创 WIN32汇编: 3.创建简单的窗口

第三课 创建简单的窗口在本课中我们将写一个 Windows 程序,它会在桌面显示一个标准的窗口。理论:Windows 程序中,在写图形用户界面时需要调用大量的标准 Windows Gui 函数。其实这对用户和程序员来说都有好处,对于用户,面对的是同一套标准的窗口,对这些窗口的操作都是一样的,所以使用不同的应用程序时无须重新学习操作。对程序员来说,这些 Gui 源代码都是经过了微

2001-06-17 20:10:00 1462

原创 WIN32汇编:2.消息框

第二课 消息框在本课中,我们将用汇编语言写一个 Windows 程序,程序运行时将弹出一个消息框并显示"Win32 assembly is great!"。理论:Windows 为编写应用程序提供了大量的资源。其中最重要的是Windows API (Application Programming Interface)。 Windows API是一大组功能强大的函数,它们本身驻扎

2001-06-17 20:09:00 1185

原创 1.基本概念

第一课 基本概念我们先假设您已知道了如何使用MASM。如果您还不知道的话,请下载 win32asm.exe ,并请仔细研读其中所附带的文档资料。好,如果您已准备就绪,我们这就开始吧!理论:WIN32 程序运行在保护模式下的,保护模式的历史可以追溯到 80286。而今 80286 已成为了历史。所以我们将只把精力集中于 80386 及后续的X86 系列 CPU。Windows 把

2001-06-17 14:35:00 858

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除