Как мы можем пользоваться какой-либо библиотекой C в нашем коде C++? (Можем мы? Какие-либо работы на этом?) (я использую VS10 и теперь говорящий о, освобождает, такие как x264 и OpenCV),
Что ж, вы можете использовать любую библиотеку C из вашего кода C ++. Это одна из замечательных особенностей C ++ :-) Вам просто нужно включить заголовки библиотек в свой код C ++ и связать их с используемыми вами библиотеками.
Любая хорошая библиотека обрабатывает включение заголовка из C ++. Если это не тот случай, вам придется сделать это самостоятельно с помощью таких вещей, как:
#ifdef __cplusplus
extern "C" {
#endif
#include "c_header.h"
#ifdef __cplusplus
}
#endif
Изменить: Как сказал Майк, части ifdef необходимы только в том случае, если вы не знаете, будет ли ваш файл использоваться с C или C ++. Вы можете сохранить их, например, если файл является заголовком заголовка API.
Кстати, opencv обрабатывает включение C или C ++ (таким образом, у вас уже есть часть #ifdef в заголовках opencv). Не знаю для x264 ...
my2cents
Насколько мне известно, если у вас есть библиотека, которую вы хотите использовать, вы просто вставляете включение в свой файл заголовка, и вы можете его использовать. оттуда.
Да, единственное, что вам нужно сделать, это обернуть утверждение #include
с extern "C"
, чтобы указать компилятору C++ использовать семантику C для имен функций и тому подобное:
extern "C" {
#include <library.h>
}
При линковке просто добавьте библиотеку, как любую обычную библиотеку C++.