VB调用C程序的方法—动态链接库法

VB调用C程序的方法—动态链接库法

ID:45900206

大小:57.12 KB

页数:10页

时间:2019-11-19

VB调用C程序的方法—动态链接库法_第1页
VB调用C程序的方法—动态链接库法_第2页
VB调用C程序的方法—动态链接库法_第3页
VB调用C程序的方法—动态链接库法_第4页
VB调用C程序的方法—动态链接库法_第5页
资源描述:

《VB调用C程序的方法—动态链接库法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、VB调用C程序的方法—动态链接库法  VB调用C程序的方法—动态链接库法  VB调用C程序的方法—动态链接库法  文中介绍了一种实现VB调用C语言程序的方法-动态连接库法给出了动态链接库制作的一般框架,通过实例描述了动态连接库的实现及其制做方法、编程步骤,这种方法具有普遍的意义关键词VB动态连接库DLLC程序一、引言VisualBasic(以下简称VB)是一种可视化的面向对象的编程语言以其编程简单、快捷等特点深受广大WINDOWS程序员的青睐利用VB开发界面友好、操作方便的软件只需很短的时间但是VB运行速度较慢对于庞大的科学计算问题VB的这种慢速会使人难以忍受C语言是

2、国际上非常流行的一种中级编程语言以其灵活、高效等优点而获得广泛应用许多的应用程序都是用C语言在DOS环境下编写而成那么如何发挥VB和C这两种语言的优势用VB设计一种良好的forwindows界面来调用C语言程序即实现VB调用C语言程序呢现有的文献只提到动态链接库(以下简称DLL)可以将这两种语言连接起来但有讲动态链接库DLL的制做及其编程方法本文详细介绍了BorlandC环境下制作动态链接库以及VB调用fordos动态链接库的的方法、步骤并通过实例描述VB调用C程序的全过程二、用BorlandC编写DLL程序的方法要想实现VB调用C程序首先需要用BorlandC编写动

3、态连接库DLL程序(假设DLL程序取名为example)动态链接库包含四个文件:C语言源程序(.C)、模块定义文件(.DEF)、原型函数文件(.H)和工程文件(.PRJ)下面分别详细介绍一下这四种文件的具体结构1、编写C语言源程序的框架:C语言源程序(example.C)它包括三种函数:入口函数、输出函数和终止函数其具体结构如下:/*************************************//*文件名:example.C*//*************************************/include/***********入口函数***

4、********/intFARPASCALLibMain(HANDLEhInstance,WORDwDataSeg,WORDcbHeapSize,LPSTRlpszCmdLine){if(cbHeapSize=0)UnlockData(0);return(1);}/***********输出函数***********/intFARPASCALexample(intparam1,...,charparamn){....../*C语言应用程序*/}/***********终止函数***********/intFARPASCALWEP(int/*SystemExit*/){

5、return(1);}以上各组成部分参数的含义:Windows.h头文件它包含有数据类型的定义、API入口点定义和其它有用的参数信息PASCAL说明符定义该程序的传递参数和净化堆栈的协定(注意:DLL外部传送的指针必须是远指针FAR)LibMain带四个参数:hInstance、wDataSeg、cbHeapSize和lpszCmdLine第一个参数hInstance是DLL事例句柄wDataSeg参数是数据段(DS)寄存器值bHeapSize参数是在模块定义文件中定义的堆的大小LibMain使用该值使本地堆初始化lpszCmdLine参数包括命令行信息但很少被DLL

6、使用一般来说这四个参数是制作DLL通用的参数如果不想让DLL数据被封住那么必须调用unlockdata恢复正常的非锁状态如果DLL初始化已经成功DLL则返回1若不成功则返回0值且DLL退出系统DLL的输出函数实现用户所要完成的任务这部分是DLL的核心它与一般C语言程序不同之处在于无scanf函数所有的外部指针都是远指针FAR画直线函数要用lineto函数DLL包括一个终止函数终止函数有时称为退出函数它的名字必须是WEP且它可以被包括在DLL模块定义文件的EXPORTS段中2、模块定义文件(.DEF)的结构和各段的意义模块定义文件的结构如下:/*************

7、************************//*文件名:example.DEF*//*************************************/LIBRARYexample/*DLLname*/DESCRIPTION'example.DLL'EXETYPEWINDOWSCODEPRELOADMOVEABLEDISCARDABLEDATAPRELOADMOVEABLESINGLEHEAPSIZE1024EXPORTSexample@1WEP@2关键字LIBRARY是把这个模块视为一个DLL库的名字example跟在其后且必须与该库

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。