запуск функций С из С ++
От: yorick  
Дата: 09.09.04 07:56
Оценка:
Кто нибудь знает как подключить библиотеку написанную на С к проекту написанному на С++. Есть только хедеры и либы. Проблема в том что структуры описанные в библиотеке не компилируются в С++. extern Pragma "С" не помагает...
... << RSDN@Home 1.1.3 stable >>

22.09.04 21:04: Оставлено модератором в 'C/C++' — Павел Кузнецов
Re: запуск функций С из С ++
От: Сергей Мухин Россия  
Дата: 09.09.04 07:58
Оценка:
Здравствуйте, yorick, Вы писали:

Y>Кто нибудь знает как подключить библиотеку написанную на С к проекту написанному на С++. Есть только хедеры и либы. Проблема в том что структуры описанные в библиотеке не компилируются в С++. extern Pragma "С" не помагает...


а подробней, почему не компилируются?
---
С уважением,
Сергей Мухин
Re: запуск функций С из С ++
От: ilnar Россия  
Дата: 09.09.04 08:01
Оценка:
Здравствуйте, yorick, Вы писали:

Y>Кто нибудь знает как подключить библиотеку написанную на С к проекту написанному на С++. Есть только хедеры и либы. Проблема в том что структуры описанные в библиотеке не компилируются в С++. extern Pragma "С" не помагает...


код в студию
Re: запуск функций С из С ++
От: Анатолий Широков СССР  
Дата: 09.09.04 08:05
Оценка: +1
extern "C" 
{
#include "your_c_header_file.h"
}
Re[2]: запуск функций С из С ++
От: yorick  
Дата: 09.09.04 10:55
Оценка:
Все переменные и функции запускаются макрсом XT_GLOBAL
а функции описываются макросами приблизительно так..

/* XTensionized (xtgetsettext_funcrec) routines structure */
typedef struct {
int16 (XTAPI *_xtgetxetstuff)(textboxid,uint32 *,trechandle *);
...
...
...
} xtgetsettext_funcrec;

....
...
/* xtgetsettext_funcrec macros */
#if USE_GETSETTEXT_FUNC_GROUP
#define xtgetxetstuff ((**xtgetsettext_funchndl)._xtgetxetstuff)
...
...
#endif

#define XT_GLOBALS \
VAR_GETSETTEXT_FUNC_GROUP \
...
...
В исходникеи проекта идет XT_GLOBALS (если компилировать на с то все нормально)
а с++ на это выдает unresolved link... если убираю пишет

error C2065: 'xtgetsettext_funchndl' : undeclared identifier
error C2100: illegal indirection
error C2100: illegal indirection

extern "C" пробовал не катит....
и еше если добавляю новый файл на с++ и пишу макрос XT_GLOBALS
пишет Redefinition .... без макроса вообще функции и пременные не видны..
... << RSDN@Home 1.1.3 stable >>
Re[2]: запуск функций С из С ++
От: yorick  
Дата: 09.09.04 11:00
Оценка:
Здравствуйте, ilnar, Вы писали:

I>Здравствуйте, yorick, Вы писали:


Y>>Кто нибудь знает как подключить библиотеку написанную на С к проекту написанному на С++. Есть только хедеры и либы. Проблема в том что структуры описанные в библиотеке не компилируются в С++. extern Pragma "С" не помагает...


I>код в студию


MSDEV 6 хотя написан для поддержки маковской платформы это QuarkXNT-development-kit может быть кто нибудь уже работал с этим.....
... << RSDN@Home 1.1.3 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.