Как мы можем пользоваться какой-либо библиотекой C в нашем коде C++?

Как мы можем пользоваться какой-либо библиотекой C в нашем коде C++? (Можем мы? Какие-либо работы на этом?) (я использую VS10 и теперь говорящий о, освобождает, такие как x264 и OpenCV),

5
задан Rella 13 July 2010 в 09:28
поделиться

3 ответа

Что ж, вы можете использовать любую библиотеку 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

2
ответ дан 18 December 2019 в 16:34
поделиться

Насколько мне известно, если у вас есть библиотека, которую вы хотите использовать, вы просто вставляете включение в свой файл заголовка, и вы можете его использовать. оттуда.

0
ответ дан 18 December 2019 в 16:34
поделиться

Да, единственное, что вам нужно сделать, это обернуть утверждение #include с extern "C", чтобы указать компилятору C++ использовать семантику C для имен функций и тому подобное:

extern "C" {
#include <library.h>
}

При линковке просто добавьте библиотеку, как любую обычную библиотеку C++.

10
ответ дан 18 December 2019 в 16:34
поделиться