У меня есть класс C++ с его заголовком CFileMapping.cpp и CFileMapping.h Я хочу вызвать функцию C++ CFileMapping::getInstance().writeMemory()
в моем C-коде.Как вызвать функцию C++ из кода C
Даже когда я обмотал C++ код и добавил
#ifdef __cplusplus
extern "C"
в заголовочном файле, чтобы иметь дело с кодом C++ и добавил
Экстерн «C» в файле CPP, я до сих пор не могу назвать моя функция как это
CFileMapping::getInstance().writeMemory().
Может ли кто-нибудь мне помочь? Я хочу сохранить свой код на C++ и иметь возможность называть его, когда захочу.
Спасибо за ваш ответ. У меня возникла ошибка в файле .cpp 'FileMapping.cpp :(. Text + 0x1014): неопределенная ссылка на std :: cout' . Даже если я добавил использование пространства имен std; после extern «C» –
вам нужно скомпилировать его с помощью компилятора C++, а не C-компилятора, и тогда вы сможете вызвать эту библиотечную функцию из кода C –
@ Emb_user Внимательно прочитайте сообщение http://stackoverflow.com/questions/ 1041866/in-c-source-what-the-the-effect-of-extern-c – VolAnd