c/c++ (socket编程)

[复制链接]
查看11 | 回复4 | 2011-8-14 12:41:08 | 显示全部楼层 |阅读模式
#include
#include
DWORD WINAPI myfun1(LPVOID lpparameter);// 1
DWORD WINAPI myfun2(LPVOID lpparameter); // 2
int main()
{ HANDLE h1, h2;
h1=::CreateThread(NULL,0,myfun1,NUll,0,NUll);
.....................................
}
DWORD WINAPI myfun1(LPVOID lpparameter)// 3
{

printf("线程1正在运行!\r\n");
}
........
问题:以上的 1,2,3处都有个WINAPI此处WINAPI的作用是什么?

回复

使用道具 举报

千问 | 2011-8-14 12:41:08 | 显示全部楼层
WINAPI 等于_stdcallstdcall 与_cdecl是两种不同的函数调用约定,区别在函数参数入栈的顺序,由调用函数还是被调用函数将参数弹出栈,以及产生函数修饰名的方法。对于参数可变的函数如printf,使用的是_cdecl调用约定,Win32的API函数都遵循_stdcall调用约定。在VC++开发环境中,默认的编译选项是_cdecl,对于那些需要_stdcall调用约定的函数,必须显式的加上_stdcall详细请参考http://baike.baidu.com/view/1276580.htm...
回复

使用道具 举报

千问 | 2011-8-14 12:41:08 | 显示全部楼层
#define WINAPI__stdcall __stdcall是函数调用约定的一种默认情况下,我们的函数调用都是遵循__stdcall这个规则的。当然,也有诸如__cdecl、__pascal等规则.建议楼主看一下百度百科里的介绍:http://baike.baidu.com/view/2311822.htm
//...
回复

使用道具 举报

千问 | 2011-8-14 12:41:08 | 显示全部楼层
有人解答了,以后可以尝试点右键看它的definition, 如果用vs, 可直接按F12。...
回复

使用道具 举报

千问 | 2011-8-14 12:41:08 | 显示全部楼层
WINAPI 是一个宏,即stdcall。详细请参考http://baike.baidu.com/view/1276580.htm 学习学习...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行