You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2022中C程序内嵌汇编块报C2400错误求助

解决Visual Studio 2022内联汇编编译错误

错误原因

你的代码使用了GCC风格的内联汇编语法(包括%0占位符和约束声明:: r (target) : eax),但Visual Studio的__asm采用MASM(Microsoft Macro Assembler)语法,完全不支持GCC的这种扩展写法,因此触发语法错误。

修正后的代码

将代码改为MASM兼容的写法,直接在汇编块中访问变量:

__asm {
    mov eax, target  ; 将目标地址加载到eax寄存器
    call eax         ; 调用eax指向的地址
}

额外说明

  • 如果target是函数指针类型,上述代码可直接工作,因为函数指针本身存储的就是目标函数的地址。
  • 若你在64位编译环境下,Visual Studio对64位内联汇编支持有限(仅允许少数简单指令),此时建议将汇编逻辑单独写成.asm文件,通过MASM编译后链接到项目中。

内容的提问来源于stack exchange,提问作者Luca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 03:12:06