函数从C到C++迁移,出现C2732或LNK2001错误
1.原来的函数由C实现,声明如下:
__declspec(dllexport) int RegisterMacro(char *macro_define, char *macro_value);
__declspec(dllexport) int GetMacroCount(void);
2.现在由STL实现,连接出错, error LNK2001
3.更改声明:
extern "C"__declspec(dllexport) int GetMacroCount(void);
编译出错, error C2732
4.更改声明
#ifdef __cplusplus
extern "C" {
#endif
__declspec(dllexport) int RegisterMacro(char *macro_define, char *macro_value);
__declspec(dllexport) int GetMacroCount(void);
#ifdef __cplusplus
}
#endif /* __cplusplus */
5.通过!
1.原来的函数由C实现,声明如下:
__declspec(dllexport) int RegisterMacro(char *macro_define, char *macro_value);
__declspec(dllexport) int GetMacroCount(void);
2.现在由STL实现,连接出错, error LNK2001
3.更改声明:
extern "C"__declspec(dllexport) int GetMacroCount(void);
编译出错, error C2732
4.更改声明
#ifdef __cplusplus
extern "C" {
#endif
__declspec(dllexport) int RegisterMacro(char *macro_define, char *macro_value);
__declspec(dllexport) int GetMacroCount(void);
#ifdef __cplusplus
}
#endif /* __cplusplus */
5.通过!