Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
winstupid
Зарегистрирован: 05.03.2002 Сообщения: 155
|
Добавлено: Вт Окт 28 2008 09:06 Заголовок сообщения: С++ и ANSI C в одной упряжке. |
|
|
Необходимо разработать объектный модуль, который можно было бы линковать как в 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 те же структуры. А вообще, хотелось бы передавать типа указателя на структуру. Возможно ли так? |
|
Вернуться к началу |
|
|
winstupid
Зарегистрирован: 05.03.2002 Сообщения: 155
|
Добавлено: Вт Окт 28 2008 09:32 Заголовок сообщения: Первый вопрос снимаю |
|
|
Первый вопрос снимаю. Нужно было в ANSIMOD.h добавить
#ifdef __cplusplus
extern "C"
...
Линкер перестал ругаться. Я понял, что компилятор как-то по своему меняет имена. А после такого объявления он это делать перестаёт. Поскольку такую конструкцию я подсмотрел у др. прога, то не знаю, зачем делается
#ifdef __cplusplus |
|
Вернуться к началу |
|
|
критикан
Зарегистрирован: 18.02.2005 Сообщения: 247
|
Добавлено: Чт Окт 30 2008 09:56 Заголовок сообщения: соловей не поет для свиней. позвони-ка ты лучше вороне |
|
|
судя по второму сообщению вопросителя, он, мягко говоря, не знаком с инструментом, которым пользуется. я уж не говорю о начальном сообщении: один и тот же объектный модуль может использоваться в разных ОС только для совместимых ОС. а винды и линукс, опять же мягко говоря, не таковы. судя по всему, товарищ хочет использовать один исходник для разных ОС. но при этом видно, что мы не знаем самых-самых-самых наиэлементарнейших сведений о языке. товарищу следует просто почитать описание языка. там есть ответ именно на заданный вопрос
--------------------------------
нет-нет, соловей -- не поет для свиней. позвони-ка ты лучше вороне |
|
Вернуться к началу |
|
|
|