- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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应用程序调用外部函数时,动态链接库
您可能关注的文档
最近下载
- 第一章 2.2 水量平衡.ppt
- 《GB/T 19326-2022锻制支管座》.pdf
- 2022年11月陕西省从优秀村社区干部中考试录用200名乡镇街道机关公务员上岸冲刺卷I含答案详解版(3套).docx VIP
- 2020年银行业从业人员职业操守和行为准则.pdf VIP
- 转预备党员思想汇报【银行】.pdf VIP
- 【新教材】人教版(2024)七年级上册英语Unit 4 My Favourite Subject教案.docx
- 米厂恒温仓库工程设计方案.docx
- 2024年党校入党积极分子培训考试必考重点知识汇编(共160题).doc VIP
- 《世界经典神话与传说故事》 测试题及答案.pdf
- 智能制造设备安装与调试职业技能等级标准(2021年).pdf
文档评论(0)