首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >winmain如何“返回两个值”?

winmain如何“返回两个值”?
EN

Stack Overflow用户
提问于 2014-03-28 05:10:02
回答 2查看 208关注 0票数 0

我想开始学习windows api,所以我看了一些教程,立即注意到main函数似乎返回了多个值。

代码语言:javascript
复制
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow);

这一切意味着什么?它不应该是int WinMainWINAPI WinMain,但不能同时是两者?

EN

回答 2

Stack Overflow用户

发布于 2014-03-28 05:12:35

WINAPI是一个扩展到__stdcall的宏。它指定调用约定,而不是返回类型。返回类型仍为“int”

票数 5
EN

Stack Overflow用户

发布于 2014-03-28 05:15:43

为了使C++编译器能够高效地面向Windows,对标准C++进行了一些扩展。

其中之一是WINAPI,它在Win32中扩展为__stdcall。这是一个非标准的编译器指令,它告诉编译器从左到右传递参数(为了与VBA等兼容)。从技术上讲,它被称为调用约定。

因此,它与返回类型无关,因此您仍然需要编写一个显式的返回类型。

(请注意,在Win64中,微软完全放弃了__stdcall,因此将WINAPI定义为空白)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22699253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档