首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

C++函数定义语法,该怎么处理

2012-01-09 
C++函数定义语法在MFC中有这个函数:C/C++ codeint AFXAPI AfxMessageBox(UINT nIDPrompt,UINT nType MB_

C++函数定义语法
在MFC中有这个函数:

C/C++ code
int AFXAPI AfxMessageBox(   UINT nIDPrompt,   UINT nType = MB_OK,   UINT nIDHelp = (UINT) -1 );

int 是返回值,AfxMessageBox是函数名,括号中的是参数,那么AFXAPI 在C++语法中是什么成份?

[解决办法]
#define AFXAPI __stdcall
[解决办法]
#ifndef AFXAPI
#define AFXAPI __stdcall
#endif
标准调用约定
[解决办法]
_stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,函数采用从右到左的压栈方式,自己在退出时清空堆栈。

作用如下:
将函数的调用规则指定为标准的C方式。 

对于不同的语言,函数的调用规则可能有些不同,主要是各参数的压栈序顺序不同。 
比如有的语言再编译为最终代码时将各参数从左向右依次压栈,有的则正好相反, 
从右向左压栈。 

在用C语言和其他语言进行混合编程时,如果两者的顺序不一样,为了保证调用正常进行, 
就要用到一些这样的声明。

热点排行