您现在的位置: 论文网 >> 计算机论文 >> 计算机应用论文 >> VB调用C程序的方法—动态链接库法论文

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

作者:未知
出处:论文网
时间:2007-04-12


      EXEPORTS语句定义将被用作来自应用程序或来自其它DLL入口点的程序,windows利用
这个信息建立一个序数入口值,序数入口值是一个优化的值,允许动态连接机制更快块操
作且使用较少的内存。
      一般来说,模块定义文件(.DEF)的结构除取动态库的名字不同外,其它结构都是固定
的。
3.建立原形函数文件(.H)
原形函数的功能是进一步声明调用函数的函数名和传递的参数,其形式为:
/*************************************/
/* 文件名: example.H */
/*************************************/
extern "C" int _export FAR PASCAL example(int param1,...,char param n) ;
4.建立工程文件(.PRJ)
       工程文件中包含有example.C、example.DEF两个文件后,然后编译连接生成动态链接
库即可。
       以上是制作动态连接库的框架,现在通过一个实例介绍制作动态链接库的方法。如要
求程序完成功能为:打开一个数据文件读出前两个数据,将这两个数与所传递的两个参数
相加,返回它们的和。设该DLL程序的名字为ADD。
第一步:在Borland C++环境下编辑.C文件、.DEF文件和.H文件,并建立.PRJ文件。如
(1)编写C语言源程序清单:
/*************************************/
/* 文件名: ADD.C */
/*************************************/
#include <iostream.h>
#include <conio.h>
#include <io.h>
#include <alloc.h>
#include <stdlib.h>
#include <windows.h>
#include <math.h>
#include <stdio.h>
#include "c:ADD.h"
/*入口函数*/
int FAR PASCAL LibMain (HANDLE hInstance ,
WORD wDataSeg ,
WORD cbHeapSize,
LPSTR lpszCmdLine )
{
if (cbHeapSize!=0)
UnlockData(0);
return 1;
}
/*输出函数*/
int FAR PASCAL ADD(int x,int y,char *filein)
{ int a,b;
fp=fopen(filein,"r");
if(fp==NULL) { exit(0);}
int temp1=0,temp2=0;
fscanf(fp,"%d",&a);
fscanf(fp,"%d",&b);
temp1=x+a;
temp2=y+b;
temp1=temp1+temp2;
fclose(fp);
return(temp1);
}
/*退出函数*/
int FAR PASCAL WEP ( int/*SystemExit*/ )
{
return(1);
}
2)ADD.DEF文件的程序清单:
/*************************************/
/* 文件名: ADD.H */
/*************************************/
LIBRARY ADD
DESCRIPTION 'ADD.DLL'
EXETYPE WINDOWS
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE SINGLE
HEAPSIZE 1024
EXPORTS
ADD @1
WEP @2
(3)ADD.H程序清单:
/*************************************/
/* 文件名: ADD.H */
/*************************************/
extern "C" int _export FAR PASCAL add(int x,int y,char *filein) ;
(4)建立工程文件:
在Borland C++环境下的project项中打开open project file项并建立ADD.prj,在add
item中加入ADD.C文件和ADD.DEF文件即可建立工程文件。
第二步,在Borland C的options项的Applation中选择Windows DLL,再在Compile中选择
Build all,这样就可生成动态链接库ADD.DLL供VB调用。

三、VB3.0调用动态链接库DLL方法

      制作好DLL之后,就可以用VB调用它,实现VB调用C程序。VB程序要使用DLL中的函
数, 首先必须要有特殊的声明,用Declare声明语句在窗体级或模块级或全局模块的代码
声明段进行声明,将动态链接库中的函数声明到VB中,供VB程序调用。
语句格式为:Declare Sub 过程名Lib摽鈹黚_n[ Alias " 别名]([ByVal 参数AS类型]),
或为Declare Function函数名Lib摽鈹黚_衃 Alias " 别名]([ByVal 参数AS类型])AS
类型在声明中首先用Declare关键字表示声明DLL中的函数。在C语言中有的函数类型为
VOID,它表示不具有返回值,则必须用关键字Sub将其声明成过程。有的函数具有返回
值,则必须用关键字Function将其声明成函数,并且在声明语句的最后要用AS关键字指明
函数返回值的类型。
例如上面的ADD.DLL在VB中就可以声明为:
Declare Function ADD Lib撫c:ADD.dll敚―ByVal X AS Integer, ByVal Y AS Integer ,ByVal filein as string)AS Integer
通过此声明语句将函数ADD声明到VB中,便可直接调用。

四、结束语

      以上详细介绍了Borland C环境下制作动态链接库以及VB调用for dos动态链接库的方
法、步骤,并通过实例说明VB调用C语言程序的方法。举例程序ADD经VB3.0编译,在486
微机上调试通过。本文介绍的方法具有广泛的意义,也完全适用于C++ 语言程序。

上一页 [1] [2]

论文搜索
关键字:VB C程序 动态链接库
最新计算机应用论文
基于网络信息安全技术管理的计算机应用研究
浅析人工智能体系建设
抖音短视频平台视频推荐模式研究
应用电子技术中可编程控制器的应用探讨
用友NC信息系统的实施应用实践研究
基于校园一卡通数据系统的学生行为分析研究
云环境下基于蚁群算法的动态容错技术研究
自拍图像中的记忆痕迹
抖音短视频用户使用动机研究
基于创新扩散理论的Vlog传播
热门计算机应用论文
学生成绩管理系统的设计与实现
浅析计算机病毒及防范的措施
学籍管理系统软件
对计算科学与计算机发展的思考
计算机应用型人才的培养模式研究
物资管理信息系统开发
计算机信息管理在第三方物流中的应用
嵌入式系统数字图像采集接口电路设计
基于B/S体系结构开发应用系统
项目管理在软件中的应用