Форум программистов, компьютерный форум CyberForum.ru

Использование C++ кода внутри программы на C: какие есть варианты? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Язык С Кому не трудно! Тема: Оператор варианта http://www.cyberforum.ru/cpp/thread442498.html
Пожалуйста, кому не трудно. задание такое: По введенной дате вычислить день, который был 14 дней назад
C++ Как узнать, что поток закончился (библиотека pthread)? Друзья! Есть ли какая-нибудь pthread-функция, которая вызывается в основном потоке X и показывает- да, созданный ранее поток Y закончился? Так-то можно в принципе сделать так: передавать в функцию потока Y параметром указатель на какой-нибудь флаг, и если поток Y заканчивается корректно, то он бы этот флаг, допустим обнулял. А потом проверять значение этого флага и по его значению определять-... http://www.cyberforum.ru/cpp/thread442331.html
Почему код, написанный на С++, в разы быстрее работает с большим объемом памяти, чем с маленьким? C++
Привет! Понадобилось мне сравнить скорость работы идентичных алгоритмов на Fortran и C++. Алгоритм - перемножение матриц. Решил поэкспериментировать с матрицами разных размеров. Вот результаты ________________________C++____________Fortran Матрицы100*100 (~80 КБ) 10000 перемножений______10,96 сек________10,97 сек Матрицы 365*365 (~1МБ) 200 перемножений_________10,26 сек_______12,56 сек
шаблонные методы шаблона. Специализация. C++
Вопрос: каким образом можно вынести реализацию методов класса за его пределы? Изначально вопрос формулировался так: Каким образом можно произвести специализацию одного из методов шаблона класса так, что бы эта специализация зависела только от одного (или нескольких) параметров шаблона, но не от всех? Другими словами, как можно частично специализировать отдельно взятый метод шаблона так, что...
C++ С++ Unit Test (модульное тестирование) http://www.cyberforum.ru/cpp/thread441995.html
Вопроса по сути два. 1. что используете для модульного тестирования и почему отдаете этому предпочтение. 2. если используете eclipse, то очень интересует процесс конфигурирования eclipse для работы с фрэймворком тестирования. Почему задаю вопрос... Гуглю неделю на предмет поиска данной инфорации. И прихожу в недоумение от того что 90% статей которые удалось найти не моложе 2010 года.. Как...
C++ Сетевой график ПОжалуйста помогите создать программу Задачи работы: - построение сетевого графика; - анализ сетевого графика; -оптимизация сетевого графика. p.s. сижу с сотки, интернет отключен программа не работает(((( если вам не тяжело можете сразу закинть программу ехе , буду вам очень признателен!!! подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17408 / 5646 / 354
Регистрация: 30.03.2009
Сообщений: 15,451
Записей в блоге: 26
09.02.2012, 21:21     Использование C++ кода внутри программы на C: какие есть варианты?
Цитата Сообщение от retmas Посмотреть сообщение
придется писать С-обертки для вашего функционала
+1

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int func (int x, int y)
{
  // типа твоя функция на Си++
  // в символьной таблице имя функции манглируется, а потому нет надёжных
  // переносимых способов вызвать непосредственно данную функцию из кода на Си
}
 
// А эта функция объявлена как extern "C" - оно предназначено для использования
// совместно с Си-кодами
extern "C" int c_func (int x, int y)
{
  return func (x, y);
}
А вот так к ней обращаться из функции на Си:

C
1
2
3
4
extern int c_func (int x, int y);
...
c_func (1, 2);
...
Понятно, что таким способом метод класса вызвать нельзя

Добавлено через 4 минуты
При этом надо понимать, что если, к примеру, твоя Си++'ная функция использовала конструкции, требующие run-time поддержки (например, new, std::cout, throw), то в режиме чистого Си с таким кодом ты слинковаться не сможешь - у тебя не будет хватать библиотеки поддержки Си++.Т.е. линковать придётся в режиме Си++ (грубо говоря, для линковки использовать g++, а не gcc)

В юниксах в этом случае действительно спасёт онанизм в виде помещения кода в динамическую библиотеку, которую линкуют при помощи компилятора Си++ (и таким образом, у неё пропишутся все необходимые зависимости по динамическим библиотекам). Как в этом случае дело обстоит под виндой - я не знаю
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru