若编写纯C的库,在代码中添加
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
编译出来的DLL库可以给任何C/C++编译器使用。
原理:extern "C"告诉编译器按照C的风格转换函数名,这样所有的编译器都可以识别。而C++不同的编译器转换不同,无法找到DLL或LIB中的对应函数。
若编写纯C的库,在代码中添加
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
编译出来的DLL库可以给任何C/C++编译器使用。
原理:extern "C"告诉编译器按照C的风格转换函数名,这样所有的编译器都可以识别。而C++不同的编译器转换不同,无法找到DLL或LIB中的对应函数。