assembly 错误LNK2019函数ARoutine中引用的未解析外部符号A

jecbmhm3  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(94)

我已经为此纠结了一天左右,但还没有找到解决方案。我尝试使用Visual Studio 2019从Testing.asm文件访问main.cpp中声明的全局变量,而这两个文件位于同一个项目中。但我遇到了以下链接错误:

Error LNK2019 unresolved external symbol referenced in function TestRoutine
// main.cpp
        extern "C" int __declspec(dllexport) A; //global variable
        .....
########################### Testing.asm #####################
    EXTERN A:QWORD

    .data    

    .code

    main PROC

    main ENDP

    TestRoutine PROC PUBLIC

    MOV EAX, DWORD PTR A 
    RET

    TestRoutine ENDP

    END
fcipmucu

fcipmucu1#

我在程序中遇到了类似的错误。使用extern "C" {int A;}解决它。顺便说一句,您将A声明为int,它是一个双精度字(32位)。后来你声明了EXTERN A:QWORD,它是64位的。最后,您使用了MOV EAX, DWORD PTR A。更直接的方法是将A声明为DWORD并删除DWORD PTR类型转换。

相关问题