高中信息技术教学论文 VB调用C程序的方法—动态链接库法.pdf_第1页
高中信息技术教学论文 VB调用C程序的方法—动态链接库法.pdf_第2页
高中信息技术教学论文 VB调用C程序的方法—动态链接库法.pdf_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VB 调用 C 程序的方法 动态链接库法 VB 调用 C 程序的方法 动态链接库法 文中介绍了一种实现 VB 调用 C 语言程序的方法 动态连接库法 给出了动态链接库制 作的一般框架 通过实例描述了动态连接库的实现及其制做方法 编程步骤 这种方法具有 普遍的意义 关键词 VB 动态连接库 DLL C 程序 一 引言 Visual Basic 以下简称 VB 是一种可视化的面向对象的编程语言 以其编程简 单 快捷 等特点 深受广大 WINDOWS 程序员的青睐 利用 VB 开发界面友好 操作方便的软件只需 很短的时间 但是 VB 运行速度较慢 对于庞大的科学计算问题 VB 的这种慢速会使人难 以忍受 C 语言是国际上非常流行的一种中级编程语言 以其灵活 高效等优点而获得广 泛应用 许多的应用程序都是用 C 语言在 DOS 环境下编写而成 那么如何发挥 VB 和 C 这两 种语言的优势 用 VB 设计一种良好的 for windows 界面来调用 C 语言程序 即实现 VB 调用 C 语言程序呢 现有的文献只提到动态链接库 以下简称 DLL 可以将这两种语言连接起来 但有讲动态链接库 DLL 的制做及其编程方法 本文详细介绍了 Borland C 环境下制作动态链 接库以及 VB 调用 for dos 动态链接库的的方法 步骤 并通过实例描述 VB 调用 C 程序的全 过 程 二 用 Borland C 编写 DLL 程序的方法 要想实现 VB 调用 C 程序 首先需要用 Borland C 编写动态连接库 DLL 程序 假设 DLL 程序 取名为 example 动态链接库包含四个文件 C 语言源程序 C 模块定义文件 DEF 原型函数文件 H 和工程文件 PRJ 下面分别详细介绍一下这四种文件 的具体结构 1 编写 C 语言源程序的框架 C 语言源程序 example C 它包括三种函数 入口函数 输出函数和终止函数 其具体 结构如下 文件名 example C 用心 爱心 专心 1 include 入口函数 int FAR PASCAL LibMain HANDLE hInstance WORD wDataSeg WORD cbHeapSize LPSTR lpszCmdLine if cbHeapSize 0 UnlockData 0 return 1 输出函数 int FAR PASCAL example int param1 char param n C 语言应用程序 终止函数 int FAR PASCAL WEP int SystemExit return 1 以上各组成部分参数的含义 Windows h 头文件 它包含有数据类型的定义 API 入口 点定义和其它有用的参数信息 PASCAL 说明符定义该程序的传递参数和净化堆栈的协定 注意 DLL 外部传送的指针必须是远指针 FAR LibMain 带四个参数 hInstance wDataSeg cbHeapSize 和 lpszCmdLine 第一个参数 hInstance 是 DLL 事例句 柄 wDataSeg 参数是数据段 DS 寄存器值 cbHeapSize 参数是在模块定义文件中定义 的堆的大小 LibMain 使用该值使本地堆初始化 lpszCmdLine 参数包括命令行信息 但 很少被 DLL 使用 一般来说 这四个参数是制作 DLL 通用的参数 如果不想让 DLL 数据被封住 那么必须调用 unlockdata 恢复正常的非锁状态 如果 DLL 初 始 化已经成功 DLL 则返回 1 若不成功则返回 0 值 且 DLL 退出系统 DLL 的输出函数实现用户所要完成的任务 这部分是 DLL 的核心 它与一般 C 语言程序不同 用心 爱心 专心 2 用心 爱心 专心 3 之处在于无 scanf 函数 所有的外部指针都是远指针 FAR 画直线函数要用 lineto 函数 DLL 包括一个终止函数 终止函数有时称为退出函数 它的名字必须是 WEP 且它可以被 包括在 DLL 模块定义文件的 EXPORTS 段中 2 模块定义文件 DEF 的结构和各段的意义 模块定义文件的结构如下 文件名 example DEF LIBRARY example DLLname DESCRIPTION example DLL EXETYPE WINDOWS CODE PRELOAD MOVEABLE DISCARDABLE DATA PRELOAD MOVEABLE SINGLE HEAPSIZE 1024 EXPORTS example 1 WEP 2 关键字 LIBRARY 是把这个模块视为一个 DLL 库的名字 example 跟在其后 且必 须与该库 的名字 DEF 中的 DLL 的文件名相一致 DESCRIPTION 语句采用一个字符串 其长度可达 128 个字符 通常用它来保存模块描述的信息 EXETYPE windows 语句每个 windows 应用程 序和 DLL 都需要 DATA 语句定义该库数据段的内存属性 关键字 MOVEABLE 允许内存管 理程序在 必要时移动内存段 关键字 SINGLE 是 DLL 必要 因为 DLL 总是有一个单一数据段 而不管访 问它的应用程序的数量 HEAPSI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论