Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите QT + Си, смешаный проект си си++ 
:(
    Опции темы
cooper123
Дата 11.11.2007, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 56
Регистрация: 30.7.2007

Репутация: нет
Всего: нет



В QT туториал 9  решил добавить свою 


#include <math.h>
int myfunc(int i)
{
    float jj;
    jj=i/22.0;
        return (int)( 54.0 * sin(jj));
}

для изображения. в приложении соответствующего графика. 
если записываю ее в файл    myfunc.cpp 
c соответствующими йзменениям в projekt.pro
то все нормально а если записываю в си файл  myfunc.c
то файл компилится но при связке, насколько я понимаю, выдается ошибка

release/cannonfield.o(.text+0x1660):cannonfield.cpp: undefined reference to `myfunc(int)'

у меня просто написано на си и хочется без больших изменений собственно отображать результаты в QT теперь все переписывать в си++ или есть возможность сделать смешаный проект из си и си++?

заранее спасибо. 
PM MAIL   Вверх
bsa
Дата 11.11.2007, 19:31 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Можно сделать смешанный проект. Только не забудь, чтобы вызвать функцию, находящуюся в модуле c++ из модуля си и наоборот, надо чтобы в ее декларации для C++ модуля было указано extern "C": module.h:
Код
...
#ifdef __cplusplus
extern "C" {
#endif //__cplusplus

int myfunc(int e);

#ifdef __cplusplus
} //extern "C"
#endif //__cplusplus
...
module.cpp:
Код
#include "module.h"
...
extern "C" int myfunc(int e)
{
       ...
}
...
Естественно, что в заголовочных файлах, подключаемых в сишных модулях, не должно быть ничего из C++.

А потом, тебе никто не мешает сменить расширение у имеющихся исходников на cpp.
PM   Вверх
Любитель
Дата 22.11.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 24
Всего: 92



Цитата(bsa @  11.11.2007,  19:31 Найти цитируемый пост)
А потом, тебе никто не мешает сменить расширение у имеющихся исходников на cpp. 

В общем случае сборка сишного сорса плюсовым компилером не гарантирована.


--------------------
PM MAIL ICQ Skype   Вверх
archimed7592
Дата 23.11.2007, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93




M
archimed7592
Тема перенесена из С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets


Добавлено через 2 минуты и 41 секунду



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0880 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.