【问题标题】:Generating DLL in visual studio在 Visual Studio 中生成 DLL
【发布时间】:2016-05-20 05:35:52
【问题描述】:

我正在尝试生成 dll 文件,在另一个程序中使用它的 .lib 文件,但不幸的是,没有生成 .lib 文件! 我该怎么办?

【问题讨论】:

  • 这是我得到的错误:链接规范与之前的“添加”不兼容(在第 1 行声明)
  • 如果您需要帮助,请参加游览URL了解您需要的一切
  • 如果您没有获得 .lib,那么最可能的不幸是您忘记导出任何内容。使用 __declspec(dllexport) 或 .def 文件。

标签: c++ dll linkageerror


【解决方案1】:

试试这样:

extern "C" _declspec (dllexport) int add(int a, int b);

extern "C" _declspec (dllexport) int add(int a, int b)
{
    return a + b;
}

【讨论】:

  • 谢谢,但实际上我需要 .lib 文件但它没有生成!
  • 所以编辑你的问题,让你想要的更清楚
【解决方案2】:

您需要使用__declspec(两个下划线)和dllexport 属性来从DLL 导出符号。在客户端,您需要使用__declspec(dllimport)

你最好把声明放在标题上:

// YourHeader.H
#ifdef _DLL_EXPORTING // Define this symbol in DLL project setting
#define EXPORT_IMPORT __declspec(dllexport)
#else
#define EXPORT_IMPORT __declspec(dllimport)
#endif

EXPORT_IMPORT int add(int,int);

让客户端直接使用这个header,不用担心declspec说明符。 EXPORT_IMPORT 宏还可用于导出您想要导出/导入的任何其他函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-16
    • 1970-01-01
    • 2017-08-27
    • 2018-07-16
    • 2015-11-12
    相关资源
    最近更新 更多