好文档 - 专业文书写作范文服务资料分享网站

Windows应用程序与动态链接库

天下 分享 时间: 加入收藏 我要投稿 点赞

设计1 Windows应用程序与动态链接库

一、设计目的

1、通过编写一个Windows窗口应用程序,了解Windows编程的基本方法,理解Windows操作系统的消息通信机制;

2、通过编写一个动态链接库,体会程序执行时的动态链接过程,掌握DLL的基本原理及其导入与导出。

二、设计要求

(1)编写一个Windows应用程序,要求产生一个简单的窗口。在该窗口的菜单栏中有一个Menu菜单,其中包含三个菜单项:Menu1,Menu2和Exit.单击菜单项Menu1,在菜单的客户区显示“Hwllo from menu1!”;单击菜单Menu2,在窗口的客户区显示“Hello from menu2!”;单击Exit,退出程序。

(2)编写一个Dll,其中含有两个函数Func1和Func2可供应用程序调用,这两个函数的功能均为返回一个字符串。Func1返回的字符串是“Hello from Func1,this function was called from ...”其中“...”为调用该函数的应用程序的名称与路径.Func2返回的字符串与此相同。

(3)修改第一项创建的应用程序,使得当单击菜单项Menu1时调用第2项创建的Dll中的Func1,获得Func1返回的字符串,并将其显示在窗口的客户区中。单击菜单项Menu2时调用Func2,并完成类似的操作。

(4)要求使用C编程,不允许使用MFC,以便体会Windows应用程序的消息机制。要求创建新工程时使用empty project,程序中的所有代码均由自己完成(包括窗口和菜单的创建),不用VC++自动生成代码

三、设计说明

3.1具体设计

(1)对应于三个要求有三个工程:相应有三个文件夹:app,dll,app_dll。下面分别加以说明。

对于第一个程序app1,这个程序就是输出一个字符串来说明单击了哪个选项。示例程序没有写resource文件,在建立win32工程的时候选择了empty工程,并把所有的代码写到了一个app1.cpp文件里。并把添加菜单的工作用函数实现了,所以没有直接去写resource文件。

(2)dll文件夹下放了动态链接库程序,用来实现相应的函数功能。编译后生成dll文件dll.dll。

dll_cpp文件夹下放了一个由app改动后的app_dll.cpp的源文件,并把dll文件夹下的头文件(dll.h)放在了这里,并建立了一个win32工程一起编译连接运行。

(3)这里用的是隐式调用dll的方法,最简单的实现是把dll文件夹下的dll.dll放到app_dll的debug中,并把dll.lib文件引入。 3.2流程图:

(1)dll.h部分

声明函数function1和function2为导出函数。形式如下: EXPORT PCSTR function1(HINSTANCE hinstance); EXPORT PCSTR function2(HINSTANCE hinstance); (2)dll.cpp部分

分别实现导出函数function1和function2。其功能为返回字符串”Hello from Func1(2),this function was called from ??”,其中”??”为调用该函数的应用程序的名称与路径。

(1)主函数部分

该主函数中只是引用了dll文件,通过#include “dll.h”来实现。其他与第一个程序中的一样。

(2)子程序部分(消息处理函数部分)

此处的消息处理函数的程序流程图与第一个程序中的消息处理函数的类似,只是实现显示字符串模块不同而已。后者直接实现显示字符串,而前者通过调用动态链接库中的导出函数实现。

主函数模块,即WinMain函数部分。 如下页图

开始 设定菜单ID 设定消息处理函数,句柄,应用程序名 应用程序入口 给各变量赋值 窗口注册成功 N Y 建立菜单 N 创建窗口成功 Y 显示更新 返回错误信息 返回错误信息 接收消息 N 消息为退出 Y N 处理消息变更显示结果 结束 结束

Windows应用程序与动态链接库

设计1Windows应用程序与动态链接库一、设计目的1、通过编写一个Windows窗口应用程序,了解Windows编程的基本方法,理解Windows操作系统的消息通信机制;2、通过编写一个动态链接库,体会程序执行时的动态链接过程,掌握DLL的基本原理及其导入与导出。二、设计要求(1)编写一个Windows
推荐度:
点击下载文档文档为doc格式
49brh1ix4e2p7v440mbn
领取福利

微信扫码领取福利

微信扫码分享