在同一解决方案-Visual Studio

时间:2018-07-22 10:31:28

标签: c++ visual-studio dll linker-errors

我有一个Visual Studio解决方案,其中包含各种项目:静态lib项目(创建* .lib文件),动态lib项目(创建* .dll文件)和一个exe项目(创建* .exe文件)

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

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

问题是,当我尝试构建exe项目时,链接器也出现了相同的错误:

  

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

每次使用dll函数时都会出现此错误。

项目配置中缺少什么,因此我将满意链接器?

编辑:-导出所需功能的示例:

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

1 个答案:

答案 0 :(得分: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文件添加到链接器->在项目属性中输入。