MFC规则dll编译时出现的错误

 
为什么我用宏定义编译出错而不用宏定义就没有问题呢
#ifndef DLL1_API 
#else
#define DLL1_API extern "C" _declspec(dllimport)
#endif

.cpp中
#define DLL1_API extern "C" _declspec(dllexport)

编译提示错误
Compiling...
DLLDload.cpp
e:\program_flies\recipe program\dlldload\dlldload.h(40) : error C2146: syntax error : missing ';' before identifier 'CAppConfig'
e:\program_flies\recipe program\dlldload\dlldload.h(40) : error C2501: 'DLL1_API' : missing storage-class or type specifiers
e:\program_flies\recipe program\dlldload\dlldload.h(41) : error C2146: syntax error : missing ';' before identifier 'CProject'
e:\program_flies\recipe program\dlldload\dlldload.h(41) : error C2501: 'DLL1_API' : missing storage-class or type specifiers
e:\program_flies\recipe program\dlldload\dlldload.h(43) : error C2146: syntax error : missing ';' before identifier 'bool'
e:\program_flies\recipe program\dlldload\dlldload.h(43) : error C2501: 'DLL1_API' : missing storage-class or type specifiers
project.cpp
e:\program_flies\recipe program\dlldload\dlldload.h(40) : error C2146: syntax error : missing ';' before identifier 'CAppConfig'
e:\program_flies\recipe program\dlldload\dlldload.h(40) : error C2501: 'DLL1_API' : missing storage-class or type specifiers
e:\program_flies\recipe program\dlldload\dlldload.h(41) : error C2146: syntax error : missing ';' before identifier 'CProject'
e:\program_flies\recipe program\dlldload\dlldload.h(41) : error C2501: 'DLL1_API' : missing storage-class or type specifiers
e:\program_flies\recipe program\dlldload\dlldload.h(43) : error C2146: syntax error : missing ';' before identifier 'bool'
e:\program_flies\recipe program\dlldload\dlldload.h(43) : error C2501: 'DLL1_API' : missing storage-class or type specifiers
Generating Code...
执行 cl.exe 时出错.
 
把编译通过了,之前问题
1、声明外部函数 bool _declspec(dllimport) IsDownLoad()而不是_declspec(dllimport)  bool IsDownLoad
2、用到的外部类也需要导出外部来
   class  _declspec(dllexport) CAppConfig
3、不知道为什么用宏定义导出函数就出现“error C2146: syntax error : missing ';' before identifier 'CAppConfig'“问题
       而不用直接用_declspec(dllimport) 方式就没有问题

你可能感兴趣的:(MFC规则dll编译时出现的错误)