pb调用vc写的动态链接库文件.docx

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pb调用vc写的动态链接库文件

pb调用vc写的动态链接库文件 PB是一种面向C/S方式的数据库应用程序的开发工具,PB拥有数据窗口、嵌入式SQL语句等技术,在开发数据库应用程序时显得特别方便。但在涉及到系统底层的一些功能时,PB本身提供的功能就有些不尽如人意。因为Windows操作系统提供给用户的接口是C语言函数形式,而VC在调用系统底层功能方面,从编程角度来讲就要方便得多。VC还有许多PB所不具备的优点,比如数据结构表达能力强,实现复杂算法的程序相对容易开发,运行速度快等。此外,不少外围设备的驱动程序提供的也是C接口。若能将这两种语言结合起来使用,充分发挥它们各自的优点,将会大大提高开发效率、增强应用程序的功能。 动态链接库简述 动态链接库(Dynamic-Link Library)简称DLL,是基于Windows系统的程序设计中的一个非常重要的组成部分。使用DLL的优点是: 1. DLL的动态连接不是将库代码拷贝,而是在程序中记录函数的入口点和接口,在程序执行时才将库代码装入内存。如果有多个程序使用相同的DLL,也只需将DLL在内存中装载一次,以节省内存的开销。 2. DLL是基于Windows系统的程序模块,不仅包含可执行代码,还可包含数据与各种资源,扩大了库文件的使用范围。 3. 对于一个大型的、不断更新的应用程序,可将许多重复的功能编写成DLL,用主程序调用,这样既能减少开发的工作量,又能提高访问速度。 4. DLL丰富了PowerScript语言的编程能力,可以使用PowerScript函数集之外的函数。 5. DLL独立于编程语言,大多数Windows编程环境都允许主程序调用DLL中的函数。可以用VC、PB、VB、汇编语言等建立DLL,然后在不同语言开发的应用程序中调用它。 一个实例 1. 用VC创建DLL 在VC 6.0中可以用“MFC AppWizard”自动生成“Win32 DLL”和“MFC AppWizard DLL”。启动VC之后,从“File/New”菜单项,选择“New”对话框中的“Projects”标签,选择新项目为“MFC AppWizard(DLL)”,可输入工程名为dl-lwl,然后点击“OK”按钮,弹出选择DLL类型对话框后,再选择DLL类型为:Regular DLL using shared MFC DLL,最后点击“Finish”按钮。这样,AppWizard将自动创建一个包含基本要素的DLL框架,接着手工添加相关的代码。 2. 打开dl-lwl.cpp文件,添加如下函数 extern “C”_declspec(dllexport) int _stdcall output_number(int x) { int y; char msg[20]; y=x 2; sprintf(msg, “计算结果:%o ! ”, y); ::MessageBox(NULL, msg, “信息”, MB_OK); return 0; } 以上声明了函数output_number(),输入参数为一个整型数,作移位运算后,用对话框将计算结果显示出来。 接着打开dl-lwl.def文件,在EXPORTS下输入函数说明,文件内容如下: LIBRARY “pbdll” DESCRIPTION ‘pbdll Windows Dynamic Link Library’ EXPORTS ; Explicit exports can go here out_num @1 最后编译生成动态链接库dl-lwl.dll。 3. 在PB中调用VC创建的DLL函数 为了在PB应用程序中调用存放在动态链接库dl-lwl.dll中的函数output_number(),需要事先声明。在声明时必须明确: ● 函数的作用范围,全局声明可使该函数用于整个应用,局部声明仅使该函数在对象的脚本中有效; ● 必须指明函数返回的数据类型、传递参数的个数和类型,并将存放该函数的动态链接库的名字告诉PB。 声明完成后,应用程序可以调用函数output_number(),调用该函数的代码与调用任何标准的PowerScript函数类似,区别就在于: 该函数存放在动态链接库中,调用时动态链接库装入内存,然后函数执行。对PB中被调用的函数使用声明: Function int output_number(int irow) LIBRARY “dl-lwl.dll” 在PB中调用函数output_number()的代码如下: int irow,retcode irow=dw_1.rowcount() retcode=out_num(irow) 装入动态链接库(DLL) 当PB应用程序调用外部函数时,动态链接库

文档评论(0)

2017ll + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档