操作系统原理实验七

操作系统原理实验七

ID:36243879

大小:38.00 KB

页数:4页

时间:2019-05-07

操作系统原理实验七_第1页
操作系统原理实验七_第2页
操作系统原理实验七_第3页
操作系统原理实验七_第4页
资源描述:

《操作系统原理实验七》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验七动态链接库的建立与调用一、实验目的(1)理解动态链接库的实现原理。(2)掌握Windows系统动态链接库的建立方法。(3)掌握Windows环境下动态链接库的调用方法。二、实验预备内容(1)动态链接库基础知识;(2)动态链接库入口函数;(3)动态链接库导入/导出函数;(4)动态链接库的两种链接方式(隐式链接、显式链接);(5)函数调用参数传递约定。三、实验内容(1)在Windows环境下建立一个动态链接库。(2)使用隐式调用法调用动态链接库。(3)使用显式调用法调用动态链接库。四、实验要求掌握动态链接库建立和调用方法。在WindowsXP+

2、MicrosoftVisualC++环境下建立一个动态链接库,并分别使用隐式和显式方式将其调用,从而体会使用动态链接库的优点。该实验完成了动态链接库的建立和调用。函数Add()和Sub()在动态链接库文件SimpleDll.cpp中,分别完成两个整数的相加和相减。而调用该动态链接库的程序文件是CallDll.cpp,程序运行结果如下:<参考程序 >//SimpleDll.cpp:DefinestheentrypointfortheDLLapplication.//#include"stdafx.h"extern"C"_declspec(dllex

3、port)intAdd(intx,inty);extern"C"_declspec(dllexport)intSub(intx,inty);BOOLAPIENTRYDllMain(HANDLEhModule,DWORDul_reason_for_call,LPVOIDlpReserved){returnTRUE;}intAdd(intx,inty){代码1//加法定义}intSub(intx,inty){代码2//减法定义}//隐式调用动态链接库的程序//CallDll.cpp:Definestheentrypointfortheconsolea

4、pplication.//#include"stdafx.h"extern"C"_declspec(dllimport)intAdd(intx,inty);extern"C"_declspec(dllimport)intSub(intx,inty);intmain(intargc,char*argv[]){intx=7;inty=6;intadd=0;intsub=0;printf("CallDllNow!");add=代码3;sub=代码4;//隐式调用动态链接库printf("7+6=%d,7-6=%d",add,sub);retur

5、n0;}//显式调用动态链接库的程序//CallDllAddress.cpp:Definestheentrypointfortheconsoleapplication.//#include"stdafx.h"#include"CallDllAddress.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////

6、////////////////TheoneandonlyapplicationobjectCWinApptheApp;usingnamespacestd;int_tmain(intargc,TCHAR*argv[],TCHAR*envp[]){ints;intnRetCode=0;typedefint(*pAdd)(intx,inty);typedefint(*pSub)(intx,inty);HMODULEhDll;pAddadd;pSubsub;hDll=LoadLibrary("SimpleDll.dll");//加载动态链接库文件if(

7、hDll==NULL){printf("LoadLibraryError.......");returnnRetCode;}elseprintf("LoadLibrarySuccess.......");add=代码5;//得到动态链接库中函数Add()的内部地址s=代码6;//显式调用printf("6+2=%d",s);sub=代码7;//得到动态链接库中函数Sub()的内部地址s=代码8;//显式调用printf("6-2=%d",s);FreeLibrary(hDll);//释放动态链接库returnnRetCode;}四

8、、思考本实验介绍了在WindowsXP+MicrosoftVisualC++6.0环境下建立与调用动态链接库的方法,使用动态链接库,除了

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

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

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