C++ 将C库转换为C++;自由基
我最近从C开始学习。C++ 将C库转换为C++;自由基,c++,c,C++,C,我最近从C开始学习。 我需要开发一个TS3插件,它由tcp套接字控制。 我会用网袋。 我发现了一堆WebSocket库,但这些库只适用于使用pThread.h的linux。我的TS3插件将只在Windows设备上运行。 它被标在那张桌子上 TeamSpeak 3 SDK由ClientLib和ServerLib组成,是 作为共享库提供,带有C风格的编码接口 让开发人员直接访问灵活且功能丰富的集合 TeamSpeak 3的核心函数使用简单的API调用。 通过标准C接口,TeamSpeak SDK
我需要开发一个TS3插件,它由tcp套接字控制。 我会用网袋。
我发现了一堆WebSocket库,但这些库只适用于使用
pThread.h
的linux。我的TS3插件将只在Windows设备上运行。
它被标在那张桌子上 TeamSpeak 3 SDK由ClientLib和ServerLib组成,是 作为共享库提供,带有C风格的编码接口 让开发人员直接访问灵活且功能丰富的集合 TeamSpeak 3的核心函数使用简单的API调用。 通过标准C接口,TeamSpeak SDK可以轻松 集成到高级编程语言中。无论如何 您的应用程序正在使用的技术,TeamSpeak SDK将适合您
<> P>这意味着我可以很容易地将TS3API转换成C++( < p>)对你的问题的答案,你不需要把C库转换成C++。基本上,您可以链接C库(Linux:.a/.so)或(Win:.dll)并将该函数使用到相应的模块中 从C++源代码中访问C代码
-
在C++语言中,LI>< P>提供了一个“链接规范”,声明一个函数或对象遵循支持的语言的程序链接约定。
<> >对象和函数的默认链接是C++。所有C++编译器也支持C链接,对于某些兼容的C编译器,
- 当您需要访问使用C链接编译的函数(例如,由C编译器编译的函数,或在汇编程序中编写的函数)时,请将该函数声明为具有C链接
extern "C" void howdy(int);
extern "language_name" declaration ;
extern "language_name" { declaration ; declaration ; ... }
- 第一个符号表示紧跟其后的声明(或定义)具有语言名称的链接
- 第二个符号表示大括号之间的所有内容都有语言名称的链接,除非另有声明。请注意,在第二种表示法中,在右大括号后不使用分号
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"
}
<强> StutoNo: 你需要在C头文件中添加这个保护,以便在C++中使用它。
#ifndef __YOURLIB_H_
#define __YOURLIB_H_
#ifdef __cplusplus
extern "C" {
#endif
int sample_func(int n);
#ifdef __cplusplus
}
#endif
#endif
你的问题的答案,你不需要把C库转换成C++。基本上,您可以链接C库(Linux:.a/.so)或(Win:.dll)并将该函数使用到相应的模块中 从C++源代码中访问C代码
-
在C++语言中,LI>< P>提供了一个“链接规范”,声明一个函数或对象遵循支持的语言的程序链接约定。
<> >对象和函数的默认链接是C++。所有C++编译器也支持C链接,对于某些兼容的C编译器,
- 当您需要访问使用C链接编译的函数(例如,由C编译器编译的函数,或在汇编程序中编写的函数)时,请将该函数声明为具有C链接
extern "C" void howdy(int);
extern "language_name" declaration ;
extern "language_name" { declaration ; declaration ; ... }
- 第一个符号表示紧跟其后的声明(或定义)具有语言名称的链接
- 第二个符号表示大括号之间的所有内容都有语言名称的链接,除非另有声明。请注意,在第二种表示法中,在右大括号后不使用分号
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"
}
<强> StutoNo: 你需要在C头文件中添加这个保护,以便在C++中使用它。
#ifndef __YOURLIB_H_
#define __YOURLIB_H_
#ifdef __cplusplus
extern "C" {
#endif
int sample_func(int n);
#ifdef __cplusplus
}
#endif
#endif
假设写得很好,C API是C++的API。如果你想要课堂和其他东西,你必须自己做。这个帖子可能对你有帮助。假设写得很好,C API就是你的C++ API。如果你想要课程和其他东西,你必须自己去做。这篇文章可能会对你有所帮助。