董督秀 发表于 2024-5-12 16:26

在vs2019中使用.asm编译32位程序失败

本帖最后由 董督秀 于 2024-5-12 16:37 编辑

    1.我创建了一个控制台项目,其中.cpp文件的内容为:

//.cpp
#include <iostream>
extern "C" int function();
int main() {
      std::cout << function();
      std::cin.get();
}

    2.我在项目设置,生成依赖项->生成自定义,里勾选了MASM编译器

    3.我添加了一个.asm文件,其内容如下,并且我将.asm文件设置成Microsoft Macro Assembler:

;.asm 如果切换成x64 Release 模式,则把这三句注释掉即可编译通过
.386;;; 1
.modelflat, stdcall;;; 2
optioncasemap:none;;; 3

.code

function proc
    mov eax, 50
ret
function endp


end

x86 Release 模式编译无法通过,提示:无法解析的外部符号_function

注意:
1.这要换做是x64编译,这样设置,一般情况是能编译通过的
2.在x86下虽然可以直接使用__asm{...};扩展关键字,但我想在.asm里写汇编

该如何解决这个问题?

问题代码:
https://f.ws59.cn/f/e3cu5llx21c

Eaglecad 发表于 2024-5-12 16:26

function proc
改为
function proc C
页: [1]
查看完整版本: 在vs2019中使用.asm编译32位程序失败