全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 917-2026公路路线标识规则和国道编号
- T/SDJSXH 07-2024塔式起重机自动驾驶系统应用技术规程
- T/JX 001-2024喷水织机行业中水回用水质要求
- T/CCSAS 052-2025三氯氢硅还原法多晶硅生产安全技术规范
- T/CCPA 74-2025公路与市政工程预制混凝土构件智能工厂技术要求
- T/CSMT HJ005-2026产品碳足迹数据质量溯源性要求
- GB/T 48281-2026航空器操纵钢丝绳套管尺寸与载荷
- 2025~2026学年广西壮族自治区玉林市陆川县人教版六年级上册11月期中数学试卷【附答案】
- 甘肃省定西市2027届七上数学期末调研模拟试题含解析
- PHP常用复试面试题及详细答案(真实职场版)
- 阿拉善盟教师招聘真题2025
- 湖南省长沙市2026-2027学年高一上学期期中考试语文自编卷(范围:统编版必修一1-4单元)(原卷版)
- 2026年食品标签标识规范业务考试试卷试题及答案
- GJB 151C-2024 军用设备和分系统 电磁发射和敏感度要求与测量
- ISO9001-2026质量管理体系标准培训
- IPC-JEDEC J-STD-020F-2024 中文版(非气密固态表面贴装器件的潮湿 - 再流焊敏感度分级)
- 2025浙江鹿城农商银行春季招聘笔试历年典型考题及考点剖析附带答案详解
- 2026国家电投集团所属国家核电招聘(41人)笔试历年典型考点题库附带答案详解
- 智慧城市重大危险源在线监控及事故预警平台规划方案
- 2025四川绵阳市绵投置地有限公司人力资源岗等岗位拟录用人选笔试历年参考题库附带答案详解
- TCTSS 3-2024 茶艺职业技能竞赛技术规程
评论
0/150
提交评论