首页 文章

在同一解决方案中使用静态(.lib)和动态(.dll)库编译exe文件 - visual studio

提问于
浏览
-1

我有一个visual studio解决方案,它有各种项目:静态lib项目(创建* .lib文件),动态lib项目(创建* .dll文件)和一个exe项目(创建* .exe文件)

exe项目使用(或更好地说 - 取决于)静态和动态库 .

我在配置属性 - >链接器 - >常规中添加了dll文件的路径,在配置属性 - >链接器 - >输入中添加了.lib文件的名称 .

问题是当我尝试构建exe项目时,我从链接器得到了同样的错误:

LNK2019未解析的外部符号...在函数中引用...

对于dll函数的每次使用都会出现此错误 .

项目配置中缺少什么,所以链接器会满意吗?

Edit : - 要导出的所需功能的示例:

extern "C" {
    void foo1(int i);
    void foo2(int i);
    ...
}

1 回答

  • 0

    要使用dll启用exe项目 - 我需要将__declspec(dllexport)添加到API函数:

    #define LIBRARY_API __declspec(dllexport)
    extern "C" {
        LIBRARY_API void foo1(int i);
        LIBRARY_API void foo2(int i);
        ...
    }
    

    然后编译器为每个.dll项目创建了.lib,我可以将.lib文件添加到项目属性中的链接器 - >输入 .

相关问题