Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > C++ Builder
Перезагрузить страницу С++ и ANSI C в одном приложении как совместить их работу
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
УРов УРов вне форума
Новичок
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.08.2008
По умолчанию С++ и ANSI C в одном приложении как совместить их работу - 28.10.2008, 00:03

Необходимо разработать объектный модуль, который можно было бы линковать как в windows так и в Linux. Начал с Билдера. Есть WINMOD.CPP который создаёт форму обрабатывает события формы. Есть WINMOD.h, ANSIMOD.C ANSIMOD.H. ANSIMOD.C содержит функцию ansimod();, которую я хочу вызвать в одном из обработчиков из WINMOD.C просто вставив строчку
ansimod();
Замечу, что для ANSIMOD.C в опциях модуля установи крыжик ANSI.
Ещё в файле ANSIMOD.h прописал прототип void ansimod(void);
При компиляции линкер выдаёт ошибку. Какое-то неправильное обращение к функции _ANSIMOD... Дальше не помню. Завтра с работы притащу точное сообщение.
Это раз.
Второе. В ANSIMOD.C описываю две структуры, данными в которых должны пользоваться оба модуля. В WINMOD.C делаю как-то так, через extern те же структуры. А вообще, хотелось бы передавать типа указателя на структуру. Возможно ли так?
Ответить с цитированием
  (#2 (permalink)) Старый
УРов УРов вне форума
Новичок
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.08.2008
По умолчанию С++ и ANSI C в одном приложении как совместить их работу - 28.10.2008, 00:03

Необходимо разработать объектный модуль, который можно было бы линковать как в windows так и в Linux. Начал с Билдера. Есть WINMOD.CPP который создаёт форму обрабатывает события формы. Есть WINMOD.h, ANSIMOD.C ANSIMOD.H. ANSIMOD.C содержит функцию ansimod();, которую я хочу вызвать в одном из обработчиков из WINMOD.C просто вставив строчку
ansimod();
Замечу, что для ANSIMOD.C в опциях модуля установи крыжик ANSI.
Ещё в файле ANSIMOD.h прописал прототип void ansimod(void);
При компиляции линкер выдаёт ошибку. Какое-то неправильное обращение к функции _ANSIMOD... Дальше не помню. Завтра с работы притащу точное сообщение.
Это раз.
Второе. В ANSIMOD.C описываю две структуры, данными в которых должны пользоваться оба модуля. В WINMOD.C делаю как-то так, через extern те же структуры. А вообще, хотелось бы передавать типа указателя на структуру. Возможно ли так?
Ответить с цитированием
  (#3 (permalink)) Старый
УРов УРов вне форума
Новичок
 
Сообщений: 14
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 27.08.2008
По умолчанию 28.10.2008, 10:30

Первый вопрос снимаю. Нужно было в ANSIMOD.h добавить
#ifdef __cplusplus
extern "C"
...

Линкер перестал ругаться. Я понял, что компилятор как-то по своему меняет имена. А после такого объявления он это делать перестаёт. Поскольку такую конструкцию я подсмотрел у др. прога, то не знаю, зачем делается
#ifdef __cplusplus
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как совместить работу нескольких движков по CMS Dnepr2000 Вопросы начинающих программистов 2 04.02.2011 15:48
Работа с записями ANSI C vani2 С/С++ 2 11.12.2010 03:11
как совместить работу delphi + access lehich Другие СУБД 0 12.07.2010 17:04
DLL Плагины как совместить работу нескольких плагинов X-Cite_Forever Delphi 2 10.10.2008 13:05
ANSI C/C++ компиляторы Matematic С/С++ 40 07.04.2007 00:05
C# and DirectX как их совместить Дохлый .NET 1 31.10.2006 19:18
Совместить функции в OpenGL DmiS0n Программирование графики 1 23.12.2005 14:27
KOI-8R -> ANSI - почему не работает telishevs Delphi 3 08.08.2005 10:19
Конвертирование char to ansi, ansi to char SadoMazaXist C++ Builder 5 22.10.2004 10:47
WinWord 97 и Visual C++ 6.0 как их совместить работу одновременно Rem Visual C++ 2 09.05.2004 01:01
Стандарт ANSI/ISO C где скачать Garik С/С++ 3 02.04.2004 18:22
Как сделать сервер и клиента в одном приложении Anonymous Java 6 14.07.2003 21:33



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов