Вызов функции c в файле lib из c ++ - PullRequest
2 голосов
/ 01 декабря 2010

Я должен вызвать функцию c, объявленную в файле lib из c ++. Какие инструкции / атрибуты / конфигурацию я должен установить для этого?

Ответы [ 3 ]

5 голосов
/ 01 декабря 2010

У вас есть заголовочный файл для библиотеки?Если это так, то в нем должно быть

extern "C" {
blah blah
}

, чтобы его могли использовать программы на Си.Если нет, то вы можете поместить это в оператор включения заголовка в своем собственном коде.Например,

extern "C" {
    #include "imported_c_library.h"
}
2 голосов
/ 01 декабря 2010

убедитесь, что вы поставили extern "C" перед объявлением функции, если ее еще нет в заголовке.

1 голос
/ 02 декабря 2010

Если вы пишете заголовочные файлы самостоятельно, часто приятно сделать что-то подобное

 #ifdef __cplusplus
 extern "C" {
 #endif

...

 #ifdef __cplusplus
 }
 #endif

так, что ваш компилятор c игнорирует это, но подбирает c ++. Кстати, для хорошего обсуждения того, зачем вам это нужно, посмотрите

Зачем нам нужен extern "C" {#include } в C ++?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...