我正在尝试在VC ++ 2008中构建动态DLL,现在在.h文件中,我声明了以下内容
#ifndef PREFILTER_LIBRARY_H
#define PREFILTER_LIBRARY_H
#ifdef PREFILTER_EXPORTS
# define PREFILTER_API __declspec(dllexport)
#else
# define PREFILTER_API __declspec(dllimport)
#endif
#endif
在PreFilter.h文件中,我正在编写
class PREFILTER_API PreFilter
{
...
};
问题是我一直在接受:
warning C4273: 'PreFilter::Apply' : inconsistent dll linkage
我看到上面宏的dllexport部分没有突出显示,并且注释本应该反过来,另外我还有另一个包含Apply()方法的.h文件。
无法弄清楚我在做错了什么。我正在尝试导出PreFilter.h的函数
答案 0 :(得分:1)
将PREFILTER_EXPORTS添加到Dll项目设置中的预处理器常量列表中:项目 - 属性 - 配置属性 - C ++ - 预处理器 - 预处理器定义。
在Dll项目中使用此文件时,在项目中定义PREFILTER_EXPORTS,并将PREFILTER_API扩展为__declspec(dllexport)。在未定义PREFILTER_EXPORTS的任何其他项目中,PREFILTER_API将扩展为__declspec(dllimport)。