定义调用约定的意义何在?

2023-12-08

例如:

int WINAPI WinMain ( HINSTANCE instance, HINSTANCE prev_instance, PSTR cmd_line, int cmd_show )

WINAPI 是一个如下所示的定义:

#define WINAPI      __stdcall

你为什么不能这样做:

int __stdcall WinMain ( HINSTANCE instance, HINSTANCE prev_instance, PSTR cmd_line, int cmd_show )

实际上我认为我的问题是我有点混淆了 typedef 的定义。谁可以给我解释一下这个?该定义的作用是什么?为什么不能在其位置编写 __stdcall ?


因为WINAPI调用约定不是保证 to be __stdcall。使用的代码WINAPI即使不正确,它仍然是正确的。

You can像后面的例子一样编写函数,它会工作得很好 - 这只是不是一个好的实践,并且不能移植到调用约定是其他东西的平台上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

定义调用约定的意义何在? 的相关文章

  • 除了第一列之外,Gridview 行可点击?

    我使用以下代码使 gridview 的整行可单击 protected void gridMSDS RowDataBound object sender GridViewRowEventArgs e if e Row RowType Data
  • 根据另一个列表的内容对列表进行排序

    我有一个包含整数列表的列表和另一个包含同时包含整数和字符串的类的列表 我想做的是按字母顺序对列表进行排序 将第一个列表中存在的条目放在前面 这是我的代码和预期输出 using System using System Collections
  • ASP .NET MVC 5 - 客户地址一对一关系

    我在这里查看了论坛 实际上发现了一些类似的问题 但不是相同的问题 类似的解决方案没有给我正确的答案 我正在使用实体框架和代码优先方法来处理 ASP NET MVC 5 我想建立客户 gt 地址一对一关系的模型 我建模的是 客户等级 publ
  • C# 动态 Linq 变量Where 子句

    我正在按照 Scott Gu 的文章创建动态 LINQhttp weblogs asp net scottgu archive 2008 01 07 dynamic linq part 1 using the linq dynamic qu
  • 将 gcov 与 CMake/CDash 结合使用的详细指南?

    我在我的项目中使用 CMake 并设置了 cdash 服务器以进行连续 夜间构建 一切运行良好 通过设置 crontab 我们可以将每小时 每晚的构建 测试结果自动上传到我们的 cdash 服务器 我的下一步是将测试覆盖率报告添加到构建中
  • string.empty 和 string[0] == '\0' 之间的区别

    假设我们有一个字符串 std string str some value is assigned 有什么区别str empty and str 0 0 C 11 及更高版本 string variable 0 如果字符串为空 则需要返回空字
  • DLL 需要访问其应用程序的符号

    在 C 中 DLL 是否可以访问加载它的应用程序的某些符号 我有一个加载插件 dll 的应用程序 这些插件需要访问该应用程序的某些API 是否可以在不创建共享此 API 的新 DLL 的情况下实现此目的 函数指针结构适合这种情况吗 示例 主
  • 是否有更好(更简单)的方法来获取特定域 SID?

    我被指派修改 WinForms 应用程序 主要检查登录用户是否属于特定域 这是我到目前为止所想出的 byte domainSid var directoryContext new DirectoryContext DirectoryCont
  • 输入缓冲区刷新

    考虑下面的代码 include
  • 如何使用 ASP.NET MVC 4.0 DonutOutputCache VaryByCustom 使缓存失效

    我正在为我的 ASP NET 应用程序使用 DevTrends MvcDonutCaching 包 它工作得很好 我目前遇到的一个问题是使我为子操作设置的 VaryByCustom 缓存无效 这是我用于 VaryByCustom 设置的一些
  • 如何从c++调用python

    我是Python新手 我尝试像这样从 C 调用 python 脚本 在 Raspberry Pi 中 std string pythonCommand python Callee py a b int res system pythonCo
  • 从 Linq 的列表中选择多个字段

    在 ASP NET C 中 我有一个结构 public struct Data public int item1 public int item2 public int category id public string category
  • 在 C# 4.0 中,是否可以从泛型类型参数派生类?

    我一直在尝试这个 但我似乎无法弄清楚 我想做这个 public abstract class SingletonType
  • C++ 静态工厂构造函数

    我正在进行模拟 它需要创建多个相当相似的模型 我的想法是有一个名为 Model 的类并使用静态工厂方法来构造模型 例如 模型 createTriangle or 模型 createFromFile 我从以前的 java 代码中汲取了这个想法
  • Cuda:最小二乘求解,速度较差

    最近 我使用Cuda编写了一个名为 正交匹配追踪 的算法 在我丑陋的 Cuda 代码中 整个迭代需要 60 秒 而 Eigen lib 只需 3 秒 在我的代码中 矩阵 A 是 640 1024 y 是 640 1 在每一步中 我从 A 中
  • g++4.9 不支持 std::align

    在学习对齐问题等时 我意识到我的 g 4 9 macports OS X 实现不支持std align 如果我尝试编译 使用 std c 11 此示例代码来自http www cplusplus com reference memory a
  • 第一个随机数始终小于其余随机数

    我碰巧注意到 在 C 中 使用 std rand 方法调用的第一个随机数大多数时候都明显小于第二个随机数 关于 Qt 实现 第一个几乎总是小几个数量级 qsrand QTime currentTime msec qDebug lt lt q
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量
  • 可选参数代码在 .NET 3.5 中编译。为什么?

    这段代码在 VS 2010 的框架 3 5 项目中编译正常 我三次检查过 public LoggingClient string uri net msmq localhost logging 为什么 我在 C 4 规范中没有看到任何内容 文
  • AddressAccessDeniedException :无需 netsh 即可解决它?

    我遇到了异常AddressAccessDeniedException因为我的processus没有注册URL的权限 我首先以管理员身份运行我的程序 好的 它成功了 但我现在想要分发我的应用程序 并且我希望每个用户都能够运行它 而不必成为管理

随机推荐

  • 如何使用 SqlCommand 参数指定选择查询的架构名称

    我们数据库中的架构名称是动态的 为什么以下不起作用 public void ReadVersion string connString string schemaName string selectCommand SELECT major
  • apache zeppelin 附加存储库导入

    如何在 zeppelin 中导入附加依赖项 我正在尝试在 apache zeppelin 中导入库 鞍座 但是 import org saddle
  • Ruby 中的 !~ 方法对 String 有何作用

    来自 sawa的回答 https stackoverflow com a 21892359 226255 什么是 do Example re d 0 0687987167581341 0 120311605902415 89 8399554
  • 定义具有相同名称的 git 别名以隐藏原始命令

    我试图使用与现有命令相同的别名作为别名 以便别名隐藏原始命令 防止我从工作树中删除文件 alias rm rm cached diff diff color 不幸的是 这不起作用 有人知道解决方法吗 谢谢 Edit环境color diff
  • 什么时候a>a为真?

    是的 我想我真的是在做梦 我在 AIX 机器上编译并运行了以下代码 AIX 3 5 PowerPC POWER5 processor type IBM XL C C for AIX V10 1 Version 10 01 0000 0003
  • ggplot2:使线上的点的颜色比线的颜色更深

    我想让图表上的每个点的颜色与线条不同 这是示例数据 df lt structure list yrmonth structure c 17167 17167 17167 17198 17198 17198 17226 17226 17226
  • 如何自定义平视通知布局?

    在我的项目中 需要更改平视通知布局 我定制了两个remoteView 一个用于Notification contentView 一个用于Notification bigContentView并成功了 当我想使用时Notification B
  • Git 对于 100,000 个对象来说确实很慢。有修复吗?

    我有一个 新鲜 的 git svn 存储库 11 13 GB 其中包含超过 100 000 个对象 我已经表演过 git fsck git gc 初次结账后在仓库上 然后我尝试做一个 git status 执行 git status 所需的
  • 覆盖文本文件上的特定行?

    如何在 c 中覆盖文本文件上的特定行 我有多个变量的值需要写入文件中 仅当新行的大小与旧行的大小相同时才有效 在 模式下打开文件a fseek 到文件的开头 在阅读下一行之前 请使用ftell 记下该行的开头 阅读该行 如果这是你想要的线路
  • UIView 隐藏/显示动画

    我的简单目标是淡出动画隐藏和显示功能 Button hidden YES 够简单的 然而 有可能让它淡出而不是消失吗 这样看起来相当不专业 在 iOS 4 及更高版本中 有一种方法只需使用 UIView 转换方法即可实现此目的 而无需导入
  • 使用 WinForms GeckoFX 控件从 C# 调用 javascript 函数的推荐方法是什么?

    问题说明了一切 我已经把所有东西都连接好了 并且知道如何将消息从浏览器 html 发送到 c 但不知道如何以其他方式发送消息 我应该能够做类似的事情 browserControl JSCall myFunction Dave Smith 以
  • iOS App提交的Bundle ID

    我的应用程序商店中已有一个应用程序 我想将新应用程序上传到应用程序商店 但它要求提供捆绑包 ID 我可以使用与第一个应用程序相同的 ID 还是每个新应用程序的新捆绑包 ID 谢谢你 您将需要创建一个新的捆绑包 ID 请参阅 Apple 文档
  • Xamarin.forms 中的垂直滑块?

    我正在尝试在 Xamarin forms 中实现垂直滑块 我知道我需要分别在 ios 和 android 中创建渲染类 对于 ios 我的渲染器似乎工作正常 对于 Android 我正在点击链接https forums xamarin co
  • git stash -- 删除未跟踪的文件

    今天在工作中 我的一位同事注意到 在提供文件路径的同时执行 git stash 会删除未跟踪的文件 git stash src 此命令会删除未跟踪的文件 并且在 stash pop 后不会恢复它们 然而 git 存储 这不 我对我来说就像一
  • 在 jqplot 中打开和关闭 pointLabels

    我正在尝试以编程方式打开和关闭 pointLabels 我认为它会像这样工作 var data 1 1 2 5 4 9 var graph jqplot id graph data series pointLabels show true
  • 是否允许在 ASP.NET Core 控制器中使用 Task.Run?

    场景 我有一个带有 删除 ASP NET Core 控制器操作的 Web 服务 该实现由两个步骤组成 第一步是便宜的 之后其他操作就不再可以看到已删除的数据 第二步是长时间运行的 它执行实际的删除 可以用吗Task Run对于第二个操作并且
  • C 风格语言中匿名 { } 块的用途是什么?

    C 风格语言 C C C 中匿名 块的用途是什么 例子 void function int i 0 i i 1 int k 0 k k 1 Edit 感谢所有精彩的回答 它将变量的范围限制在 内的块内
  • 线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException [重复]

    这个问题在这里已经有答案了 我是编程新手 在 eclipse 中运行一些新代码时 我遇到了这个错误 并且完全迷失了 import java util Scanner public class Lab6 public static void
  • 如何修复 gpflow 中内核长度尺度的某些尺寸?

    我有一个 2d 内核 k gpflow kernels RBF lengthscales 24 5 1e 5 m gpflow models GPR data X Y kernel k mean function None 我想修复第二维的
  • 定义调用约定的意义何在?

    例如 int WINAPI WinMain HINSTANCE instance HINSTANCE prev instance PSTR cmd line int cmd show WINAPI 是一个如下所示的定义 define WIN