我正在尝试获取关于COM在x64机器上的行为方式的明确答案。当在x64机器上分派对COM接口的调用时(假设COM实现是64位),Windows是否使用正常的x64调用约定?具体而言,我动态生成我的vtbl条目,将其指向在运行时动态加载的一块汇编代码。这个汇编代码需要知道如何从调用它的人那里正确地获取参数。因此,我想知道COM是否使用标准的x64调用约定(基本上是fastcall)来设置对我的汇编代码的调用。
我正在尝试获取关于COM在x64机器上的行为方式的明确答案。当在x64机器上分派对COM接口的调用时(假设COM实现是64位),Windows是否使用正常的x64调用约定?具体而言,我动态生成我的vtbl条目,将其指向在运行时动态加载的一块汇编代码。这个汇编代码需要知道如何从调用它的人那里正确地获取参数。因此,我想知道COM是否使用标准的x64调用约定(基本上是fastcall)来设置对我的汇编代码的调用。
COM 调用约定是由 STDMETHOD/STDMETHODIMP 宏定义的。在 IA-32 上,大多数宏使用 stdcall
;我不知道 x86-64 上使用什么(我只安装了 32 位 mingw 交叉编译器)。