【问题标题】:VS2015 Linking .dll/.so in C++VS2015 在 C++ 中链接 .dll/.so
【发布时间】:2017-10-11 06:20:06
【问题描述】:

我有以下文件 (https://www.dropbox.com/s/2bfhylzb2evrggp/Lib.rar?dl=0)

它包含头文件、.so 和 .dll 文件。

我在 C/C++ 和 Linker 下添加了附加路径(到 dll.s 和 .h 文件) 我也使用了rar文件中的示例代码,VS2015提取了代码

包括“swi32.h”

但只要我尝试使用头文件中定义的方法,我就会得到以下内容

Severity Code Description Project File Line Suppression State Error LNK1120 1 unresolved externals ConsoleApplication1 C:\Users\Donald Jansen\Desktop\CPPTest\Swi32Test\ConsoleApplication1\Debug\ConsoleApplication1.exe 1
Error LNK2019 unresolved external symbol _WiCreateRawImage@0 referenced in function _main ConsoleApplication1 C:\Users\Donald Jansen\Desktop\CPPTest\Swi32Test\ConsoleApplication1\Console.obj 1

我不确定我错过了什么

【问题讨论】:

    标签: c++ c dll


    【解决方案1】:

    如果您隐式链接 dll,那么您一定还收到了一个 .lib 文件,您需要将其与您的控制台应用程序链接。这应该删除未解析的符号警告。操作系统会在加载使用它的可执行文件时加载 DLL。

    如果您显式链接 dll,那么您的代码应该显式加载和卸载 DLL 以访问导出的函数。

    你提到的 .so 可能是一个 linux 共享对象文件,在 windows 平台上没有用。不过我可能错了。

    【讨论】:

    • 我没有收到带有示例代码的 .lib,我将尝试看看是否可以明确链接它,我知道 .so 不是我必须使用的文件,它是我尝试使用的.dll,但我都收到了
    • 显式链接似乎起作用了,真是头疼,但我正在取得进展
    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多