IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   C++ plus C project (http://www.imho.ws/showthread.php?t=93877)

Crazy_kettle 07.10.2005 23:11

C++ plus C project
 
Может кто знает, как создавать созместный C и C++ проект, т.е. проект который включает как С так и С++ исходные файлы. При попытке копмиляции выдаёт ошибку линковщика (ф-ции не найдены). Пробовал перед ф-циями, написанными на С, ставить __cdecl по аналогии с библиотечными файлами, но это у меня не заработало.
Хотелось бы узнать как можно более общее резение проблемы (работало на разных компиляторах и линковщиках). Хотя буду очень признателен за решение для среды MS Visual Studio (от 6.0)

Дело в том, что на С++ перейти хочу, но многие ф-ции на С написаны (впринципе можно создавать копии с расширением cpp, но этого из-за возможной неразберихи делать не хочется).

Заранее благодарен.

PSyton 08.10.2005 07:54

при включении заголовочных файлов C в проект C++ нужно писать примерное так
extern "C"
{
#include "f1.h"
...
}

Тогда линковщик будет нормально видеть C функции.
тоже самое можно делать при объявлении внешних C функций в проекте C++
extern "C" void MyFunk();

Kuvaldum 09.10.2005 01:00

Лучше так обрамлять, тогда будет работать и для С и для С++

#ifdef __cplusplus
extern "C" {
#endif
...
...
#ifdef __cplusplus
} /*extern "C" */
#endif

KapMaH 09.10.2005 01:03

Цитата:

Crazy_kettle:
Дело в том, что на С++ перейти хочу, но многие ф-ции на С написаны (впринципе можно создавать копии с расширением cpp, но этого из-за возможной неразберихи делать не хочется).
PSyton дело говорит, проблемы могут возникнуть в случае, если хэдеры (*.h) слишком сложные.
Можно попробовать создать файл MyC_Func.cpp в котором проинклюдировать все нужные *.c файлы


Часовой пояс GMT +4, время: 21:26.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.