Linux高级编程实验实验4报告

上传人:沈*** 文档编号:111611504 上传时间:2022-06-21 格式:DOC 页数:11 大小:831.25KB
返回 下载 相关 举报
Linux高级编程实验实验4报告_第1页
第1页 / 共11页
Linux高级编程实验实验4报告_第2页
第2页 / 共11页
Linux高级编程实验实验4报告_第3页
第3页 / 共11页
点击查看更多>>
资源描述
电 子 科 技 大 学实 验 报 告学生姓名: 学 号: 指导教师:李林实验地点:清水河主楼A2-412 实验时间: 一、实验室名称:Linux环境高级编程实验室二、实验项目名称:插件框架实验三、实验学时:4学时四、实验目的:实践Linux环境下插件框架的开发。学习并掌握插件的工作原理。五、实验内容:l 1、使用动态链接库实现打印功能开发一个程序,向屏幕打印“Hello World”;在不重新编译链接原程序的前提下,将打印的文字改为“Hello China” 。l 2、使用动态链接库实现自定义打印功能同时要打印“Hello World”,打印“Hello China”,甚至同时打印未来才会增加的其他打印信息。打印未来的这些信息,也不能重新编译链接原程序。l 3、一次只调用一种功能通过命令行方式:./a.out help,输出所有插件实现的功能ID,以及该功能ID对应的功能描述(参考代码3)通过命令行方式:./a.out FuncID,调用具体打印功能(每个插件导出GetID接口)(参考代码4)l 4、导出函数都放在一个类中在版本3中,插件导出了Print、GetID、Help三个函数,主程序需要使用多个容器分别保存这些函数地址。在复杂的业务逻辑中,导出的函数可能更多,若还按照版本3的方式,代码维护性不佳。将三个导出函数都放在一个类中,让插件外部获取该类的对象六、实验步骤:版本1程序代码如图1.1、图1.2、图1.3所示(程序是在Linux图形界面截取的,本人的Ubuntu在字符界面无法显示中文注释):图1.1 功能函数图1.2 hello world函数图1.3 主函数首先,使用命令#g+ -fpic shared o function.so helloworld.cpp function.cpp将helloworld.cpp和function.cpp编写成动态库function.so。如图1.4所示:图1.4 动态链接库的编写然后,再进行动态库使用者的编译,命令是#g+ -o main main.cpp ldl,如图1.5所示。图1.5 动态库使用者图中显示了两次运行结果,但是第一次是hello world,第二次是hello baby。这很好地体现的动态链接的特性。版本2代码如下:图2.1 main 图2.2 hello yanyumin函数图2.3 hello YANYUMIN函数该函数实现了,同时要打印“Hello yanyumin”,打印“Hello YANYUMIN”,没有重新编译链接原程序。运行结果如下图2.4所示。图2.4 运行结果版本3-2程序代码如下:图3.1 main.cpp图3.2 function1.cpp图3.3 function.cpp此外,还有CPluginController.cpp和CPluginEnumerator.cpp,里面存放的都是main函数调用的子函数,在main里有注释,所以便不再赘述。运行结果如下:图3.4 运行过程与结果版本4主要程序代码如下:图4.1 main.cpp图4.2 IPrintPlugin.cpp图4.3 function1.cpp图4.4 function.cpp这种方式采用将三个导出函数都放在一个类中,让插件外部获取该类的对象。编译运行结果如下:图4.5过程及结果七、总结及心得体会:本次实验主要是学习插件的开发和使用,通过不同的思想对不同插件进行编程,打开了我的思维,增加了我对插件编程的灵活性的掌控。八、对本实验过程及方法、手段的改进建议:这次做实验的过程有点紧凑,实验代码有的部分不是很理解(相关知识掌握不清晰),建议老师能在上堂课结束后提示一下本堂课的主要内容,便于我们课后查阅提前准备。总的来说,收获很大。 报告评分: 指导教师签字:
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!