Windows 64 位有 64 位版本的 Windows API 吗?

问题描述 投票:0回答:1

旧的32位Windows提供32位Windows API,大多数都有'WINAPI'的调用约定,这是一个从

__stdcall
定义的宏。

现在64位,调用约定已统一为微软的“x64调用约定”:(https://en.wikipedia.org/wiki/X86_calling_conventions)

我的问题是:

64位Windows是否也提供了一套Windows API 64位,没有任何'WINAPI'指示符?

如果是这样,如何让旧的应用程序兼容并编译成windows 64位版本?处理旧的调用约定会出现问题。

c++ windows winapi x86-64 64-bit
1个回答
0
投票

WINAPI
是一个预处理器宏,通常扩展为
__stdcall
__stdcall
调用约定仅对 32 位目标有意义。然而,这并不意味着该 API 仅适用于 32 位目标,如文档中所述:

在 ARM 和 x64 处理器上,编译器接受并忽略

__stdcall

Win32 API 可在 64 位版本的 Windows 上使用,函数参数和类型在适用的情况下扩展到 64 位。

WINAPI
装饰是一个保留。

© www.soinside.com 2019 - 2024. All rights reserved.