174编号Linux高级编程实验实验4报告.pdf
- 文档编号:30838542
- 上传时间:2024-01-30
- 格式:PDF
- 页数:11
- 大小:715.34KB
174编号Linux高级编程实验实验4报告.pdf
《174编号Linux高级编程实验实验4报告.pdf》由会员分享,可在线阅读,更多相关《174编号Linux高级编程实验实验4报告.pdf(11页珍藏版)》请在冰豆网上搜索。
电电子子科科技技大大学学实实验验报报告告学生姓名:
学生姓名:
学学号:
号:
指导教师:
李林指导教师:
李林实验地点:
清水河主楼实验地点:
清水河主楼A2-412实验时间:
实验时间:
一、实验室名称:
一、实验室名称:
Linux环境高级编程实验室二、实验项目名称:
二、实验项目名称:
插件框架实验三、实验学时:
三、实验学时:
4学时四、实验目的:
四、实验目的:
实践Linux环境下插件框架的开发。
学习并掌握插件的工作原理。
五、实验内容:
五、实验内容:
1、使用动态链接库实现打印功能开发一个程序,向屏幕打印“HelloWorld”;在不重新编译链接原程序的前提下,将打印的文字改为“HelloChina”。
2、使用动态链接库实现自定义打印功能同时要打印“HelloWorld”,打印“HelloChina”,甚至同时打印未来才会增加的其他打印信息。
打印未来的这些信息,也不能重新编译链接原程序。
3、一次只调用一种功能通过命令行方式:
./a.outhelp,输出所有插件实现的功能ID,以及该功能ID对应的功能描述(参考代码3)通过命令行方式:
./a.outFuncID,调用具体打印功能(每个插件导出GetID接口)(参考代码4)4、导出函数都放在一个类中在版本3中,插件导出了Print、GetID、Help三个函数,主程序需要使用多个容器分别保存这些函数地址。
在复杂的业务逻辑中,导出的函数可能更多,若还按照版本3的方式,代码维护性不佳。
将三个导出函数都放在一个类中,让插件外部获取该类的对象六、实验步骤:
六、实验步骤:
版本版本1程序代码如图1.1、图1.2、图1.3所示(程序是在Linux图形界面截取的,本人的Ubuntu在字符界面无法显示中文注释):
图1.1功能函数图1.2helloworld函数图1.3主函数首先,使用命令#g+-fpicsharedofunction.sohelloworld.cppfunction.cpp将helloworld.cpp和function.cpp编写成动态库function.so。
如图1.4所示:
图1.4动态链接库的编写然后,再进行动态库使用者的编译,命令是#g+-omainmain.cppldl,如图1.5所示。
图1.5动态库使用者图中显示了两次运行结果,但是第一次是helloworld,第二次是hellobaby。
这很好地体现的动态链接的特性。
版本版本2代码如下:
图2.1main图2.2helloyanyumin函数图2.3helloYANYUMIN函数该函数实现了,同时要打印“Helloyanyumin”,打印“HelloYANYUMIN”,没有重新编译链接原程序。
运行结果如下图2.4所示。
图2.4运行结果版本版本3-2程序代码如下:
图3.1main.cpp图3.2function1.cpp图3.3function.cpp此外,还有CPluginController.cpp和CPluginEnumerator.cpp,里面存放的都是main函数调用的子函数,在main里有注释,所以便不再赘述。
运行结果如下:
图3.4运行过程与结果版本版本4主要程序代码如下:
图4.1main.cpp图4.2IPrintPlugin.cpp图4.3function1.cpp图4.4function.cpp这种方式采用将三个导出函数都放在一个类中,让插件外部获取该类的对象。
编译运行结果如下:
图4.5过程及结果七、总结及心得体会:
七、总结及心得体会:
本次实验主要是学习插件的开发和使用,通过不同的思想对不同插件进行编程,打开了我的思维,增加了我对插件编程的灵活性的掌控。
八、对本实验过程及方法、手段的改进建议:
八、对本实验过程及方法、手段的改进建议:
这次做实验的过程有点紧凑,实验代码有的部分不是很理解(相关知识掌握不清晰),建议老师能在上堂课结束后提示一下本堂课的主要内容,便于我们课后查阅提前准备。
总的来说,收获很大。
报告评分:
报告评分:
指导教师签字:
指导教师签字:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 174 编号 Linux 高级 编程 实验 报告