如何在DLL中声明常量?

时间:2015-12-29 06:36:55

标签: c++ dll

我刚刚开始熟悉我生命中第一次创建图书馆,现在我遇到了问题。

button

应用我从这个tutorial学到的东西,我成功地在里面只有//lib.h #ifdef DLL_EXPORT #define DECLDIR __declspec(dllexport) #else #define DECLDIR __declspec(dllimport) #endif ... extern "C" { DECLDIR const double MAX_CALC_DUR = 60; DECLDIR int stoi(string input); // C++11 not available on the Code::Blocks version I'm given to work with } 构建了库,并将它链接到其他项目以供使用。现在,我想添加一个常量,如上面的代码所示。但是,我收到以下错误:

stoi()

研究让我看到了question,这表明问题可能与external linkage required for symbol 'MAX_CALC_DUR' because of 'dllexport' attribute 基本上等同于静态有关。但是,我知道标准库中定义了常量,那么在DLL中定义常量的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以简单地省略DECLDIR。由于MAX_CALC_DUR具有内部链接(因为它是const),因此包含标题的每个文件都会像往常一样获得自己的私有副本,并且一切都会正常工作。

如果可以直接将DLL插入到客户端代码中,则无需从DLL中导出内容。