Использование С кода в С++/Qt программе

Модератор: Модераторы разделов

Ответить
Аватара пользователя
Daeloce
Сообщения: 62
ОС: OpenSUSE 11.0 Ubuntu 9.04

Использование С кода в С++/Qt программе

Сообщение Daeloce »

Всем добрый день. Есть некий код написанный на Си. Код фактически представляет из себя набор функций. Встала задача написать прогу расширяющую функционал данного кода, а кроме того создание графического интерфейса. Решил сделать на Qt, но встал вопрос: как использовать сишный код в плюсах. Вариант в лоб, это обернуть сишный код в классы(точнее даже создать фабрики ибо все функции спокойно могут быть статическими) и использовать их дальше как обычные плюсовые. Но это долго и не сильно красиво в плане того что приходиться делать лишнюю работу. Есть ли способ использовать эти функции статически при этом чтобы они не принадлежали ни одному классу? В С++ вроде бы была такая возможность надо было просто добавить какую(ие)-то #pragma. Но какие сейчас не помню может кто подскажет? И еще как это все состыкуется с Qt? Вроде не должно быть особых проблем, но мало ли?

В общем кто может что по этому поводу подсказать?Заранее спасибо!
Спасибо сказали:
sim1
Сообщения: 155
ОС: GNU,BSD
Контактная информация:

Re: Использование С кода в С++/Qt программе

Сообщение sim1 »

Я обычно в подобных ситуация код, написанный на C, оформляю в виде стат. или разделяемой библиотеки и линкую ее туда куда нужно.
С QT все стыкуются замечательно (проверено), главное случайно не использовать имена функций такие же как в QT.
Спасибо сказали:
NickLion
Сообщения: 3408
Статус: аватар-невидимка
ОС: openSUSE Tumbleweed x86_64

Re: Использование С кода в С++/Qt программе

Сообщение NickLion »

С глобальными функциями в C++ проблем нет. А если будут проблемы в самом коде - оберните в extern "C" { /* здесь Ваши функции */ }

UPD если, как сказал sim1 будут пересечния с именами методов Qt - оберните все это еще в namespace.
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: Использование С кода в С++/Qt программе

Сообщение drBatty »

Daeloce писал(а):
15.06.2009 15:30
Код фактически представляет из себя набор функций. Встала задача написать прогу расширяющую функционал данного кода, а кроме того создание графического интерфейса

всё прекрасно вставляется и так...
NickLion писал(а):
15.06.2009 15:56
А если будут проблемы в самом коде - оберните в extern "C" { /* здесь Ваши функции */ }

UPD если, как сказал sim1 будут пересечния с именами методов Qt - оберните все это еще в namespace.

ага.
но проблем быть не должно, если С код достаточно "правильный". (использование глобальных переменных с именами a,b,c не приветствуется..)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Ответить