【问题标题】:Linking a C module to MASM in Visual Studio在 Visual Studio 中将 C 模块链接到 MASM
【发布时间】:2019-05-25 14:21:44
【问题描述】:

我正在处理一个大型 MASM 项目(我已经使用 VS 2019 下的 ML 编译器编译了我的 MASM 代码),我想在我的 MASM 代码中调用我编写的 C 函数。我用谷歌搜索了很多,但我找不到任何有用的东西。我怎样才能做到这一点?

当我刚刚尝试将我的 C 源代码添加到项目中并重新构建它时,我遇到了一堆链接错误 (LNK2019),如下所示:

LNK2019 unresolved external symbol __CrtDbgReport referenced in function __CRT_RTC_INIT

LNK2019 unresolved external symbol __CrtDbgReportW referenced in function __CRT_RTC_INITW

LNK2019 unresolved external symbol ___stdio_common_vsprintf_s referenced in function __vsprintf_s_l

Here is a screenshot of the errors window

【问题讨论】:

标签: c windows visual-studio linker masm


【解决方案1】:

回答我的问题

我终于想出了办法。

从您的 C/C++ 模块创建一个静态库 (.lib)。

属性 -> 项目默认值 -> 配置类型 -> 更改为.lib

然后,在您的 masm 代码中,添加以下行:

includelib your_generated_lib.lib

(一定要把你的lib文件添加到你的masm代码目录)

并将原型添加到您的函数中,如下所示:

function_name PROTO C :DWORD   ;(Just an Example )

希望对你有帮助,

奥马尔

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    相关资源
    最近更新 更多