MessageBox函数
MessageBox一般都会是在学习WIN32程序设计时最先接触的API函数,使用它的前置条件很少:
1. 需要包含头文件 #include <windows.h>,就可以了;
2. 我们可以在C/C++的控制台程序中调用它,然后再进入WinMain函数的学习。
初次接触这个函数,我们只需要记住3个0和一条需要显示的文本即可:
#include <windows.h>
int main(int argc, char *argv[])
{
MessageBox(0,"hello world",0,0); //只需要记住3个0和一条需要显示的文本
return 0;
}
而MessageBox是有返回值的,具体可以去百度或MSDN上去查一下这个函数,然后我们就利用返回值制作一个简单的选择题:
#include <windows.h>
int main(int argc, char *argv[])
{
int ret = MessageBox(0,"hello world",0,1);
if (ret == IDOK)
MessageBox(0,"Yes",0,0);
else
MessageBox(0,"No",0,0);
return 0;
}
进一步,我们希望在出现窗口时播放声音:
#include <windows.h>
int WINAPI WinMain( HINSTANCE hInst,
HINSTANCE hPre,
LPSTR cmdLine,
int nCmdshow)
{
mciSendString("play D:/b1.mp3","",0,NULL);
MessageBox(0, "hello world!","aa",0);
return 0;
}
好了,问题来了:我们无法完成“编译+链接”这个过程。
手动编译连接
由上面的问题,我们来看看手动编译!
如果使用MinGW(GCC)编译器:
1. 要先把Mingw环境设置好(如果在cmd中直接打gcc显示no input就对了);
2.在cmd中依次键入以下命令:
gcc -c main.cpp (得到main.o)
gcc main.o -lwinmm (连接libwinmm.a)
如果使用的VC编译器:
1. 找到VC的控制台
2. 键入以下命令:
CL main.cpp -c (得到main.obj)
LINK main.obj user32.lib winmm.lib (连接到库)