众所周知,Windows系统是不开源的。
所谓的开源就是该系统的源代码对外开放,就比如我们用的Linux系统
,它的源代码就包含在它的文件里面,可以打开文件(绝对路径:usr/src/linux)
借鉴其中的源代码。
不开源就是不对外开放自己的源代码,就比如现在大部分使用的Windows操作系统,它的源代码都是经过包装过的,我们学习windows时不需要知道它是怎么实现的,只需要知道怎么用就好了。
win32操作环境 ---------------- Visual Studio 2017
创建项目过程如下:
文件
--->新建
---> 项目
---> visual C++
--->Windows桌面应用程序
下面是一个创建的项目代码
#include"stdafx.h"
#include<Windows.h>
int _stdcall WinMain(HINSTANCE hInstance,//实例句柄(指向一个实例的无类型指针)
HINSTANCE hPrevInstance,//父实例句柄
LPSTR lpCmdLine,//命令行
int nShowCmd)
{
if (MessageBoxA(0,//窗口句柄这个消息盒子的父窗口是谁
lpCmdLine, //盒子里面的文本
"提示",
MB_YESNO | MB_ICONINFORMATION))//消息盒子的类型
{
MessageBox(0, 0, 0, 0);
}
}
显示的结果如下
1.png 2.png注:按第一个界面的任意一个按钮直接跳到第二个窗口
没错 窗口打开后会返回值 ,所以可以用到if语句里面当做判断条件
下面来详细讲解下这个项目的各个环节
1.窗口的调用是用Windows系统调用的所以加上它的头文件
#include<windows.h>
2._stdcall 代表函数的参数是从右往左进栈的
3.该程序的入口参数是WinMain(书写的大小写一定要规范)
4.HINSTANCE 是void*的转定义形式,一般带H开头的叫句柄 (无类型指针)
5.P ,LP开头的在win32里面代表指针(这些基本上都被微软重定义给掩盖了C语言的写法)
6.windows的数据类型都是大写
下面来写一个播放音乐的程序
#include"stdafx.h"
#include<Windows.h>
#include<mmsystem.h>
#pragma comment(lib,"Winmm.lib")
int _stdcall WinMain(HINSTANCE hInstance,//实例句柄(指向一个实例的无类型指针)
HINSTANCE hPrevInstance,//父实例句柄
LPSTR lpCmdLine,//命令行
int nShowCmd)
{
//wav格式的音乐
//PlaySound(_T("Candy - Bila.mp3"),//一般用相对路径
// NULL,//应用程序实例句柄
// SND_ASYNC|SND_FILENAME|SND_LOOP);
//mp3格式的音乐
mciSendString(_T("open 1.mp3 alias cnady"),
NULL,//接受信息的缓冲区为NULL,不返回信息
0,//缓冲区大小
NULL);//回调函数的窗口句柄
mciSendString(_T("play cnady"),NULL,0,NULL);
MessageBox(0, 0, 0, 0);//是为了设置断点
}
注意:一定要在该路径下将音乐放进去
C:\Users\sofency\source\repos\(文件名)
接下来就可以播放美妙的音乐了
网友评论