c 动态调用VB语言的dll,VB调用C程序的方法—动态链接库法

#include #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 ADDDESCRIPTION 'ADD.DLL'EXETYPE WINDOWSCODE PRELOAD MOVEABLE DISCARDABLEDATA PRELOAD MOVEABLE SINGLEHEAPSIZE 1024EXPORTSADD @1WEP @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]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值