首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于x64微软注册表,gcc/g++有调用约定吗?

对于x64微软注册表,gcc/g++有调用约定吗?
EN

Stack Overflow用户
提问于 2016-01-28 12:39:09
回答 1查看 2K关注 0票数 3

我有几个x86和x64库,其中许多是汇编代码,或者没有源代码,它们是为x86上的__cdecl堆栈约定和微软在amd64上的x64调用约定(RCX、RDX、R8、R9)构建的。使用gcc/g++将它们从COFF32转换为ELF32,将COFF64转换为ELF64,并链接到fine。x86函数原型使用__attribute__((cdecl, regparm(0)))并且可以完美地工作。但是,默认情况下,Linux上的x64使用不同的x64调用约定(RDI、RSI、RDX、RCX、R8、R9)。我似乎找不到如何告诉gcc/g++使用微软使用的备用x64调用约定?似乎只有两种不同的x64调用方法,我希望在gcc/g++中存在类似__attribute__((regparm(msx64)))的方法。gcc/g++是否支持交替调用约定?

蒂娅!!

EN

回答 1

Stack Overflow用户

发布于 2016-01-28 15:57:42

正如马克·格利西在评论中指出的那样。答案是__attribute__((ms_abi))

现在效果很好。

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

https://stackoverflow.com/questions/35052984

复制
相关文章

相似问题

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