Visual Studio 2022 MASM32 链接问题

问题描述 投票:0回答:1

请帮助我链接和编译 2 个简单文件。我尝试将 MyProcedure.asm 的扩展名更改为 inc,装饰和取消装饰名称 MyProcedure(masm 然后开始请求双重装饰),使 MyProcedure 公开,尝试 /coff 但我找不到解决方案。我只想在 Visual Studio 2022 中编译 2 个文件 (masm32)。我正确链接了库。我无法更改系统的 PATH,因此只能使用 Visual Studio 2022 菜单,而不能使用控制台。 当我尝试编译这些文件时,我收到一条错误,指出 _MyProcedure 不存在。我无法编译和运行该程序。我希望能够帮助您成功编译该程序。由于限制,我必须使用 Ms Visual Studio 菜单和命令按钮,我无法在控制台上键入命令(我无法编辑操作系统的 PATH)。

INCLUDE Irvine32.inc

EXTERN MyProcedure:PROC  ; Deklaracja zewnętrznej procedury

.data
    message BYTE "Hello from Main.asm!", 0

.code
main PROC
    mov edx, OFFSET message
    call WriteString
    call CrLf
    call MyProcedure         
    call ExitProcess
main ENDP

END main

和 MyProcedure.asm

INCLUDE Irvine32.inc
PUBLIC MyProcedure          

.data
    message BYTE "Hello from MyProcedure.asm!", 0

.code
MyProcedure PROC
    mov edx, OFFSET message
    call WriteString
    call CrLf
    ret
MyProcedure ENDP

END
assembly x86 visual-studio-2022 masm irvine32
1个回答
0
投票

看看是否可以启动这个简单的Win32控制台程序,修改为使用Irvine32.inc:

        .686p                   ;enable instructions
        .xmm                    ;enable instructions
        .model flat,c           ;use C naming convention (stdcall is default)

;       include C libraries
        includelib      msvcrtd
        includelib      oldnames
        includelib      legacy_stdio_definitions.lib    ;for scanf, printf, ...

        .data                   ;initialized data
pfstr   db      "Hello world!",0dh,0ah,0
        .data?                  ;uinitialized data
        .stack  4096            ;stack (optional, linker will default)

        .code                   ;code
        extrn   printf:near
        public  main

main    proc
        mov     eax,0ffh
        imul    eax,01010101h
        push    offset pfstr
        call    printf
        add     esp,4
        xor     eax,eax
        ret
main    endp
        end
© www.soinside.com 2019 - 2024. All rights reserved.