对于你的问题的答案,你不需要将C库转换为C++。基本上,您可以链接C库(Linux:.a/ .so)或(Win:*。dll),并将该函数用于相应的模块。
访问C代码从C++源
声明联动规格
以下符号的
使用一个来声明的对象或功能有语言LANGUAGE_NAME的起重:
实施例:
extern "C" void howdy(int);
extern "language_name" declaration ;
extern "language_name" { declaration ; declaration ; ... }
- 第一个符号表示声明(o紧随其后的是language_name的链接。
- 第二个符号表示除非另外声明,大括号之间的所有内容都具有language_name的链接。请注意,在第二个表示法中,在大括号后没有使用分号。
您可以嵌套链接规范,但大括号不会创建作用域。考虑下面的例子:
extern "C" {
void f(); // C linkage
extern "C++" {
void g(); // C++ linkage
extern "C" void h(); // C linkage
void g2(); // C++ linkage
}
extern "C++" void k(); // C++ linkage
void m(); // C linkage
}
尽管嵌套链接说明符,上述所有函数都在同一个全局范围内。
包括C头文件在C++代码
如果你想使用自己的定义头一个C库,它的目的是为C编译器,您可以在外部的“C”括号内的头:
extern "C" {
#include "header.h"
}
SIDENOTE:为了在C++中使用它,你需要在你的c头文件中加入这个守护进程。
#ifndef __YOURLIB_H_
#define __YOURLIB_H_
#ifdef __cplusplus
extern "C" {
#endif
int sample_func(int n);
#ifdef __cplusplus
}
#endif
#endif
Tutorial to use C lib in C++.
假设它写得很好的C,C API的*是*你的C++ API。如果你想上课和其他的东西,你必须自己做。 – InternetAussie
这篇文章http://stackoverflow.com/questions/12066279/using-c-libraries-for-c-programs可能会帮助你。 – Scab