c语言中的windows.h 中包含的可调用的函数有哪些?这些函数分别有什么用?

Python020

c语言中的windows.h 中包含的可调用的函数有哪些?这些函数分别有什么用?,第1张

c语言中的windows.h

中包含的可调用的函数

int

CDECL

MessageBoxPrintf

(TCHAR

*

szCaption,

TCHAR

*

szFormat,

...)

//TCHAR就是宽字符,你学过C++应该知道CHAR,TCHAR就是CHAR的两倍长度,用来兼容UNICODE的,至于UNICODE和ANSI的区别,你自己去查了。CDECL这个是C语言函数的默认调用惯例,调用惯例是什么,就是操作系统如何调用这个函数,包含了如何保存参数如何返回值等等,具体可以去查。

{

TCHAR

szBuffer

[1024]

va_list

pArgList

//这里提一些必须的东西,va这个开头的宏都是处理可变参数列表的,什么是可变参数列表,意思就是可以变长的参数列表,这个在WINDOWS下用得非常多,比如printf的函数,里面用类似很多%d的格式控制,也有实际输出的内容,都是作为函数的参数,具体有多少要看实际情况,所以可变参数列表在这里就起作用了。

va_list就是申明一个可变参数列表的变量

va_start

(pArgList,

szFormat)

//va_start用于初始化可变参数列表,具体的效果就是把szFormat这个可变参数列表的第一个参数地址赋给了pArgList

_vsntprintf

(szBuffer,

sizeof

(szBuffer)

/

sizeof

(TCHAR),

szFormat,

pArgList)

//这个很简单,就是把szFormat和pArgList格式成字符串放在szBuffer里了

va_end

(pArgList)

//把pArgList清0,这个只是为了程序的规范。

return

MessageBox

(NULL,

szBuffer,

szCaption,

0)

显示一个内容为szBuffer标题为szCaption的默认对话框,只有一个确定的那种

}

int

WINAPI

WinMain

(HINSTANCE

hInstance,

HINSTANCE

hPrevInstance,

PSTR

szCmdLine,

int

iCmdShow)

{

int

cxScreen,

cyScreen

cxScreen

=

GetSystemMetrics

(SM_CXSCREEN)

cyScreen

=

GetSystemMetrics

(SM_CYSCREEN)

//取得屏幕的宽高

MessageBoxPrintf

(TEXT

("ScrnSize"),

TEXT

("The

screen

is

%i

pixels

wide

by

%i

pixels

high."),

cxScreen,

cyScreen)

//调用上面的那个函数,TEXT用于转换为UNICODE

return

0

}

#include<iostream>

#include<windows.h>

using namespace std

void setColor(WORD F,WORD B)//定义一个函数设置文本颜色

void main()

{

for(){

int* pint pos=0int nint numint i,j

setColor(FOREGROUND_BLUE|FOREGROUND_GREEN,0)

for () { cout<<"请输入玩游戏的人数,不能小于1:\n"

cin>>nif(n) break}

p=new int[n]

for( j=0j<nj++) p[j]=1

for() { cout<<"请输入间隔数:不能小于1;\n"

cin>>num if(num) break}

//_______________________________________________________________

cout<<"Game is beginning...\n"

cout<<"依次出队的小孩子是:\n"

setColor(FOREGROUND_BLUE|FOREGROUND_RED,0)

//------------------------------------------------------------------

for()//程序的关键处

{ int z=nint t=0

for(i=0i<ni++) if(p[i]==0) z--

if(z==1) break

for (pos)

{pos=pos%n<br/>if(p[pos]!=0)t++<br/>pos++<br/>if(t==num) break}

cout<<" "<<pos

p[pos-1]=0

}

//---------------------------------------------------------------------

cout<<endl

setColor(FOREGROUND_RED,0)

//输出结果:

for(int t=0t<nt++)

if(p[t]) cout<<"最后的赢家是:第"<<t+1<<"个小孩子!"<<endl

setColor(FOREGROUND_GREEN,0)

cout<<"想再玩吗?y or n\n"

char kcin>>kif(k=='n') break

}

}

void setColor(WORD F,WORD B)//定义一个函数设置文本颜色

{ HANDLE hc=GetStdHandle(STD_OUTPUT_HANDLE)

SetConsoleTextAttribute(hc,F|B)

}

你看看这个看能否有所帮助