我们如何使用C++代码中的任何C库? (我们可以吗?)(我使用VS10,现在谈论诸如x264和OpenCV的库)我们如何使用C++代码中的任何C库?
回答
那么你可以使用C++代码中的任何C库。这是C++的一件很酷的事情:-) 您只需将库头文件包含在C++代码中,并链接到您使用的库。
任何好的库都会处理它从C++中包含的头文件。如果不是这样,你必须自己用的东西像做:
#ifdef __cplusplus
extern "C" {
#endif
#include "c_header.h"
#ifdef __cplusplus
}
#endif
编辑:正如迈克说,在ifdef的部分,才需要,如果你不知道,如果你的文件将使用C或C使用++ 。例如,如果文件是API标头的头部,则可以保留它们。
顺便说一句,opencv处理由C或C++包含(因此你已经在opencv头文件中有#ifdef部分)。我不知道X264 ...
my2cents
是的,唯一需要做的就是将#include
语句与extern "C"
包装在一起告诉C++编译器使用C-语义函数名和这样的:
extern "C" {
#include <library.h>
}
连接时,只需添加库就像任何普通的C++库。
这很好,只要C头不使用任何C++的关键字(如'new'或'private')的名称。 – 2010-07-13 09:35:08
以及如何调用函数 - 如果我在C++中的library.h中'write_frame'我可以把它叫做普通函数? – Rella 2010-07-13 09:36:39
@Ole:是的,只要声明了“extern”C“',你就可以像调用其他函数一样调用它。 – 2010-07-13 09:38:42
据我所知,如果你有你要使用的库,你只需要在你的头文件中加入一个include,你就可以使用它。 从那里。
您需要'extern“C”'告诉C++编译器库函数具有C风格的链接,并且某些C头可能包含在C++中无效的名称。 – 2010-07-13 10:14:30
- 1. 在C代码中使用C++库
- 2. 使用来自C#代码的C库
- 3. 任何使用Kdevelop自动缩进c/C++代码的方法?
- 4. 如何用boost库建立C++代码
- 5. 如何在HTML中使用C#代码?
- 6. 如何将任何文本插入到使用C#代码的任何网站?
- 7. 我如何更改我的C代码?
- 8. 如何使用任务工厂与我现有的代码在C#中?
- 9. 如何使用C#代码运行C#代码?
- 10. 我们如何在C#上使用FileMode.Append?
- 11. 如何在Android中使用我的OpenCV C++代码?
- 12. 使用c#代码我们如何捕获VSTS站点的屏幕截图
- 13. 如何使用C++代码中的“c-style flags enum”?
- 14. 如何用C代码
- 15. 如何用C#代码
- 16. 如何优化我的c代码?
- 17. 如何组织我的c代码
- 18. C#如何更改我的代码?
- 19. (C++)如何在C++中使用OpenBlas库?
- 20. 我们如何终止这个C代码?
- 21. 我们如何将DBF相关代码迁移到C#.NET?
- 22. 如何确定使用相同宏的不同C++代码库?
- 23. 如何在C++异常处理中包装我的C代码?
- 24. 如何在asp.net代码中使用C编写javascript代码#
- 25. 如何使用C++代码处理cookie?
- 26. 如何使用CUDA加速C++代码
- 27. 如何使用Mathlink创建C代码
- 28. 如何使用asp.net C#代码
- 29. 如何在C/C++代码中使用HTMLElement类
- 30. 如何在C/C++中使用源代码级多线程?
如果您知道自己在编写C++,则不需要'#ifdef __cplusplus'。这只需要在两种语言包含的头文件中。 – 2010-07-13 10:07:53
@Mike:当然你是对的。我可能写了太多的框架/库:)对我的坏习惯抱歉;) – neuro 2010-07-13 14:59:05