win32(1)--基础

来源:互联网 发布:三网合一网络箱 编辑:程序博客网 时间:2024/05/29 19:17

Win32. Windows下的32位编程.

第一阶段学习内容:

Windows 基础、窗口创建机制、消息循环机制、消息的处理、菜单处理、GDI 编程、对话框、控件、资源、目录操作、内存映射、虚拟内存、进程线程、库函数DLL ,LIB。

1. windows四大模块程序.

      控制台应用程序----DOS ,没有窗口,入口main()

      窗口程序-------------自己的窗口,入口函数WinMain(....)

      动态库程序----------dll结尾的程序,有入口DllMain()

      静态库程序----------lib结尾的程序.没有入口函数

PS:什么是Win32SDK:


Windows操作系统提供了很多的函数,以方便我们开发Windows应用程序。这些函数是Windows操作系统提供给应用程序编程的接口,简称为API函数(Application Programming Interface)。我们在编写Windows程序时所说的API函数,就是指Windows系统提供的函数,所有主要的Windows函数都在Windows.h头文件中进行了声明。使用windowsAPI创建的能在windows上运行的程序统称为windows程序。


MSDN是微软向开发人员提供的一套帮助系统,其中包含开发文档、技术文章和示例代码。程序员可以利用MSDN来辅助开发,可以利用MSDN来进行学习,几乎所有的WindowsAPI函数都可以在MSDN上找到。VS2008以后,MSDN只有在线的网页版本了,对于初学者,以前的版本也是可以用的。(使用的时候,只需要把光标停留在需要查的函数上按F1)


SDK的全称是Software Development Kit,就是软件开发包。这个开发包通常都会包含API函数库、帮助文档、使用手册、辅助工具等等。SDK实际上就是开发所需资源的一个集合。Win32SDK,就是Windows32位平台下的软件开发包,包括了WindowsAPI函数、帮助文档、微软提供的一些辅助开发工具等等。


2. 编译连接流程

  编辑器: 用来编写代码(记事本)

  编译器: cl.exe 把代码编译成目标文件obj(cl.exe cpp路径).

  链接器:link.exe ----把obj文件和dll或lib文件关联生成exe文件

        ( link.exe obj文件 lib库名 )

  资源编辑器:re.exe 编辑图片,光标 菜单....


3.第一个win32程序的编写

       Int WINAPI WinMain(HINSTANCE hInstance,// 实例句柄

          HINSTANCE phInstanc, // 父类的实例句柄

          LPSTR cmd,  // 命令行参数

          int show) //显示方式

     {    }

    实例句柄:一个程序运行在内存中的标识.

 

4.字符集:

      Unicode字符集:windowNT 宽字节字符集.两个字节保存

      通常windows中对于函数都会有两个版本,一个正对于多字节字符集的函数,一个正对于款字节字符集的函数.CreateWindowW/A .

      UNICODE 编码,在字符串前加L,如果是多字节编码什么都不用加._T()是一个兼容版本,当你是unicode的时候会自动加L 如果多字节什么都不会做.

       多字节字符集: Char  -----strlen 有一套函数处理

       宽字节字符集: wchar_t --- wcslen() ......

       兼容的字符集: TCHAR

      兼容版本: _tcslen()....

   

5.小知识点:

     MessageBox  -----弹出窗口 (堵塞函数)

     第一个参数:窗口句柄 NULL; nullptr

     第二个参数: 框中显示的内容.

     第三个参数: 标题字符串

     第四个参数: 标识

      MB_OK ----默认ok按钮

      MB_YESNO--有是和否两个按钮

      MB_YESNOCANCEL--- 有是否 退出

   根据返回值判断点击的按钮值.

API : Application(应用)Programming(程序) Interface(接口)

   微软为了方便windows程序的开发提供的各种函数.

SDK: 软件开发包.包含API,说明文档,辅助开发工具.

头文件: windows.h---包含了很多的windows的头文件.使用方便

      Winbase.h---- 内核API接口的封装, kernel32.dll

      Winuser.h-------用户API,用户接口 user32.dll

      Socket------------ws_32.lib

      Mmsystem.h----音乐播放的头文件. Winmm.lib.


音乐播放: PlaySound() ----WAV

        第一个参数: 播放的音乐文件名或者资源id的字符串

        第二个参数:实例句柄

        第三个参数:播放标识:

        SND_SYNC----同步播放,播放完成后函数才返回,堵塞

        SND_ASYNC---异步播放,开始播放后直接返回

        SND_LOOP---循环播放

        SND_FINENAME 根据文件名进行播放

        SND_RESOURCE 根据资源文件进行播放

        如果第一个参数是NULL 则停止播放

    mciSendString()----MP3

6.代码调试:

     错误信息处理:GetLastError(); 得到最后一个errorID

    

OutputDebugString----在输出窗口显示内容.只有debuge版本才会输出

设置: options/force.... 设为选择状态才可以使用OutputDebugString

断言: assert(真),如果为假则弹出异常窗口

TRACE: 就是OutputDebugString的封装.

原创粉丝点击