Windows 实验总结

关于DLL的生成地址

在CreateDLL.cpp文件中,我定义了两个函数,同时这里
在这里插入图片描述
__stdcall:Windows API默认的函数调用协议。
在头文件做好相对应的定义:
在这里插入图片描述
__declspec(dllexport)

将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。
通常它和extern “C” 合用

这是由于在制作DLL导出函数时由于 C++ 存在函数重载,因此__declspec(dllexport) FUNCTION(int,int) 在DLL会被decorate,例如被decorate成为 function_int_int,而且不同的编译器decorate的方法不同,造成了在用GetProcAddress取得FUNCTION地址时的不便,使用extern "C"时,上述的decorate不会发生,因为C没有函数重载,如此一来被extern"C"修饰的函数,就不具备重载能力

(1)C编译器的函数名修饰规则
对于__stdcall调用约定,编译器和链接器会在输出函数名前加上一个下划线前缀函数名后面加上一个“@”符号和其参数的字节数

(2)C++编译器的函数名修饰规则
C++的函数名修饰规则有些复杂,但是信息更充分,通过分析修饰名不仅能够知道函数的调用方式,返回值类型,甚至参数个数、参数类型。

同时针对上面的,无论是添加extern "C"还是不添加,都不是我们想要的函数名,.h头文件的作用仅仅能导出动态库、明确编译链接方式及确定入口点约定,还一个重要作用是打包给开发者,使其了解动态库导出的函数及对应的的参数,为了确保导出函数名及入口点函数不变,此时需添加.def文件

使用def文件的意义
将编译器生成的函数修饰去掉,用更加自然、更加容易理解、更加容易记忆的名字来命名函数

def文件导出的动态库DLL既可以保证函数名不变也可以保证动态库DLL的入口点函数名不变,同时在.cpp文件中函数定义中加入__stdcall就可以实现导出的DLL被其它语言调用,此时.h头文件的作用仅仅打包给开发者,供其查看导出的函数名及相应参数而已

先将解决方案切换到Release模式,再生成项目

默认情况下,项目属性的设置的目录起点为项目配置文件所在的位置,实际上就是项目头文件和源文件所在的位置。

C++项目,则解决方案总目录下包含一个项目文件夹,在vs编译器中生成debug和release解决方案后,总目录下还会生成对应的debug和release目录,存放最终生成的exe或dll文件,同时也会在项目文件夹下生成debug和release目录(存放的是中间编译文件obj)。
在这里插入图片描述
在vs2010的项目属性页,会有一些系统变量,如下:
SolutionDir:解决方案目录
Configuration:指debug或release
ProjectName:项目名字
OutDir:在 常规–输出目录 中定义的值,如 ( S o l u t i o n D i r ) (SolutionDir) (SolutionDir)(Configuration)\,表示XXX\lolution\debug\目录值
IntDir:中间目录
TargetDir:生成exe或dll文件所在位置,如链接器-常规-输出文件为 ( O u t D i r ) (OutDir) (OutDir)(TargetName)$(TargetExt)(即定义了exe输出位置,也就决定了TargetDit的值),此时TargetDir表示在XXX\lolution\debug
TargetName:目标输出名,不包括扩展名
TargetPath:目标输出文件的全路径名
ProjectDir:表示项目目录值,一般在“调试-工作目录”中设置该值
TargetExt:扩展名
PlatformToolsetVersion:
ConfigurationName:配置名字,通常是Debug或者Release

关于Windos消息机制

FindWindow用法
函数功能:该函数获得一个顶层窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数不查找子窗口。在查找时不区分大小写。
函数型:HWND FindWindow(LPCTSTR IpClassName,LPCTSTR IpWindowName);
参数
IpClassName :指向一个指定了类名的空结束字符串,或一个标识类名字符串的成员的指针。如果该参数为一个成员,则它必须为前次调用theGlobafAddAtom函数产生的全局成员。该成员为16位,必须位于IpClassName的低 16位,高位必须为 0。
IpWindowName:指向一个指定了窗口名(窗口标题)的空结束字符串。如果该参数为空,则为所有窗口全匹配
返回值:如果函数成功,返回值为具有指定类名和窗口名的窗口句柄;如果函数失败,返回值为NULL。
C#中使用该函数首先导入命名空间:
在这里插入图片描述
如果接收者的Text中不是在sender中定义的
在这里插入图片描述
在这里插入图片描述
SendMessage使用方法
函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
函数原型
LRESULT SendMessage(HWND hWnd,UINT wMsg,WPARAM wParam,LPARAM IParam)
参数:
hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。
wMsg用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量.
wParam通常是一个与消息有关的常量值,也可能是窗口或控件的句柄
lParam通常是一个指向内存中数据的指针。由于WParm、lParam和Pointer都是32位的,因此,它们之间可以相互转换
返回值:返回值指定消息处理的结果,依赖于所发送的消息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《大学计算机基础》 (课程编号:B0900650) 实验报告 (2014—2015学年第1学期) 实验成绩: 学 号: 姓 名: 专业班级: 课 堂 号: 任课教师: 完成日期: "一、实验目的及要求 " "1.1 能熟练掌握 Windows7的启动、退出,以及操作界面和操作方法。 " "1。2 能够熟练掌握Windows7操作系统的相关操作。 " "1。3 能够熟练完成文档的编辑及修饰。 " "1。4 能够熟练建立Excel表格,并能够进行排序、筛选及分类汇总的操作。 " "1。5 能够熟练掌握创建PowerPoint演示文稿。 " "1.6 能够运用网络进行相应的搜索。 " "二、实验设备(环境)及要求 " "PC机,Windows 7,Office 2010 " "实验参考教材: " "《大学计算机基础实验指导》(第三版). " "(以下简称《实验教程》) " "三、实验内容及记录 " " " "本课程的实验指导书提供了三十多个实验。根据学生的普遍水平和教学时数安 " "排,教师应选择其中的5个实验,作为实验课时的主要内容,并将实验报告和结果" "作为期末成绩考核的依据.其他实验项目作为预习内容或课外练习。建议实验内" "容具体如下: " " " "实验项目一:熟悉Windows 7系统 " " " "1、预习要求:PC的组成、汉字输入法、鼠标键盘的操作、Windows 7的文件系 " "统、Windows 7控制面板。 " "2、实验目的: " "(1)掌握资源管理器中文件和文件夹的管理; " "(2)掌握单个与多个文件的操作方法。 " "(3)学习利用Windows " "7控制面板提供的功能完成对计算机各种参数进行个性化配置。 " "3、实验内容及要求: " "(1)建立文件和文件夹; " "答:1.双击"计算机"图标,再在窗口中双击E盘; " " " "2.单击右键,选中"新建",再选中"文件夹"或"word文档" " " " "文件和文件夹的移动、复制、删除; " "答:1.选中"文件",单击右键,在快捷菜单中选中"剪切",然后再在希望粘贴 " "的地方,单击右键,选中"粘贴"; " "选中"文件",单击右键,在快捷菜单中选中"复制",然后再在希望粘贴的地方," "单击右键,选中"粘贴"; " "选中"文件",单击右键,在快捷菜单中选中"删除",然后再在弹出的对话框,单" "击"是"。 " " " "文件属性的操作; " " " "单个与多个文件的选取方法。 " "答:1。选择单个文件,鼠标左键单击该文件夹。 " "2.选择连续的多个文件,按住Shift键,用鼠标左键点击要选择的第一个文件, " "再点击要选择的最后一个文件. " "3.选择不连续的多个文件,按住Ctrl键,用鼠标左键依次点击要选择的各个文件" "。 " "4.选择所有文件:按Ctrl+A组合键,实现选中所有文件. " " " "(5)校准计算机系统的时间; " "答:1.点击"开始"按钮,打开"控制面板"; " " " "在控制面板中找到"日期和时间"按钮,点击"更改日期和时间"; " " " " " "(6)查看系统配置的详细信息; " "答:1.启动"Windows任务管理器",在"性能"选项卡中可以查看当前计算机的性" "能参数。 " " " "若想了解更加详细的情况,单击"资源管理器",在打开的窗口中选择"CPU选项卡" ""。 " "添加、删除程序; " "答 打开"开始"菜单,找到"控制面板",再找到"添加删除程序"。 " " " "配置桌面显示属性。 " "答:打开"我的电脑",单击"控制面板",再点击"外观和个性化",之后单击"显示" ""。 " " " "实验项目二:Word使用 " " " "1、预习要求:汉字输入、Word的插入菜单、Word视图、文档格式设置、文本框" "、表格处理等。 " "2、实验目的: " "(1)掌握文本的录入与文本的选定、复制、移动、删除、剪切和粘贴; " "(2)掌握文本的查找与替换. " "(3)熟练掌握Word图文混排功能。 " "(4)掌握表格在Word中起两个作用:数据整理与版式编排,熟练掌握Word表格 " "制作与修饰功能。 " "3、实验内容及要求: " "(1)依照范文进行文本录入; " "答:1.按照范文录入文本; " "2.保存文档,在E盘根目录下创建一个名为"范文"的文件夹,将文档取名为"范 " "文.docx"。 " " " "依照要求修改和编辑文档; " "答:1.光标定位到第一行,切换到"插入"选项; " "2.单击"插图"选项组中的"图片",打开"插入图片"对话框; " "3.在"文件名"文本框中选定图片,单击插入. " " " "对文档进行复制、删除操作; "

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值