ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:541.46KB ,
资源ID:7201301      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7201301.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统实验一动态链接库的建立与调用.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统实验一动态链接库的建立与调用.docx

1、操作系统实验一动态链接库的建立与调用上海电力学院 计算机操作系统原理实验报告 题目:实验一 动态链接库的建立与调用 院系:计算机科学与技术学院 班 级: 学生姓名: 学号: 评 语: 成 绩: 2014年10 月 10日上海电力学院实验报告课程名称: 计算机操作系统 实验项目 :动态链接库的建立与实调用 姓名: 学号: 班级: 专业 : 同组人姓名 无 指导教师姓名 徐曼 实验日期 一实验目的和要求:1.理解动态链接库的实现原理;2.掌握WINDOWS系统动态链接库的建立方法;3.掌握WINDOWS环境下动态链接库的调用方法。4.掌握动态链接库建立和调用方法,在WINDOWS XP+VC+6.

2、0环境下建立一个动态链接并分别使用隐式和显式将其调用,从而体会使用动态链接库的优点。二实验内容:1.在Windows环境下建立一个动态链接库。2.使用隐式调用法调用动态链接库。3.使用显式调用法调用动态链接库。三实验平台:Visual Studio C+ 6.04实验原理 本次实验将在Windows 7和Visual Studio C+ 6.0环境下建立一个动态链接库,分别使用隐式和显示的方式将其调用。动态链接库是一个可执行模块,它包含的函数可以由Windows应用程序调用提供所需功能,为应用程序提供服务。5实验步骤与记录1)启动Visual Studio C+ 6.02)选择file-new

3、命令,新建一个Win32 Dynamic-Link Linrary 程序。3)创建一个简单的工程4)用户直接使用DllMain的动态链接库入口函数5)使用编译连接工具生成动态链接库6)动态连接库的隐式调用首先建立一个Win32 Console Application,在位置栏内输入工程文件名所在路径。7)选择控制台文件类型:一个支持MFC的程序,单击完成按钮。8)用此文件中的CallDll.cpp调用前面建立好的函数动态链接库Mydll.dll9)生成控可执行文件之前,把Mydll.dll复制到工程文件CallDll的debug文件中,将Mydll.lib复制到CallDll.cpp中,然后在

4、Microsoft Visual C+环境下,选择ProjectSetting 命令,在连接选项中的Project Options 文本框中输入动态链接库的导入/导出库文件Mydll.lib10)如果需要设置函数调用参数传递,在编辑环境中进行设置。选择工程-设置,在C/C+选项中的Category下拉列表框中选择CodeGeneration,在Calling convention 选择_cdecl。11)隐式调用实验结果截图:12)选择filenew命令,选择Win32 Console Application建立一个控制台工程文件Call。13)选择一个支持MFC的程序14)打开编辑环境,编译

5、后,连接并运行程序。15)显示调用实验结果截图6程序源代码1.建立动态链接库Mydll.cpp文件源代码:/ jkh.cpp : Defines the entry point for the DLL application.#include stdafx.hextern C_declspec(dllexport) int Add(int x,int y);extern C_declspec(dllexport) int Sub(int x,int y);BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOI

6、D lpReserved ) return TRUE;int Add(int x,int y) int z; z=x+y; return z;int Sub(int x,int y) int z; z=x-y; return z;2.隐式调用动态链接库CallDll.cpp文件源代码#include StdAfx.hextern C_declspec(dllimport) int Add(int x,int y);extern C_declspec(dllimport) int Sub(int x,int y);int main(int argc,char* argv) int x=7; in

7、t y=6; int add=0; int sub=0; printf(call dll now!n); add=Add(x,y); sub=Sub(x,y); printf(7+6=%d,7-6=%dn,add,sub); return 0;3.显示调用动态链接库Mydll.dll的Call.cpp文件源代码:#include StdAfx.h#include Call.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ The one and only appli

8、cation objectCWinApp theApp;using namespace std;int _tmain(int argc, TCHAR* argv, TCHAR* envp) int s; int nRetCode=0; typedef int(* pAdd)(int x,int y); typedef int(* pSub)(int x,int y); HMODULE hDll; pAdd add; pSub sub; hDll=LoadLibrary(Mydll.dll); if(hDll=NULL) printf(LoadLibrary Error.n); return n

9、RetCode; else printf(LoadLibrary Success.n); add=(pAdd)GetProcAddress(hDll,Add); s=add(6,2); printf(6+2=%dn,s); sub=(pSub)GetProcAddress(hDll,Sub); s=sub(6,2); printf(6-2=%dn,s); FreeLibrary(hDll); return nRetCode;7实验小结实验中遇到的问题:第八步中,将CallDll.cpp中文件运行,发现出现问题不能实现,后来发现是程序在编写过程中错误,将程序改正后编译正常。第九步中,生成可控制文

10、件之前,需要把Mydll.dll复制到工程文件CallDll的debug文件中,将Mydll.lib复制到CallDll.cpp中,但在Mydll中却找不到Mydll.lib文件,不知道是什么原因,只能重新创建后找到了。后面依次完成。在整个程序运行的过程中,刚开始出现无法连接的问题,在同学的帮助下,知道要将C+源程序文件夹创建在Microsoft Visual C+的C盘中。心得:动态链接库是Windows下程序组织的一种重要方式,使用动态链接库可以极大的保护用户在不同开发工具,不同时期所作的工作,提高编程效率。通过此次实验,让我对动态链接库有了更近一步的认识,掌握了动态链接库隐式和显式两种调用方法。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1