Re: Подключение функции к MFC-диалогу?
От: YVR  
Дата: 11.09.03 06:57
Оценка: 3 (1)
Здравствуйте, MaxS, Вы писали:

MS>Привет,


MS>Есть MFC приложение (диалог), необходимо подключить функцию из .c файла.

MS>Файл vasya.h

MS>
MS>extern int vasya1(char *hello);
MS>


#ifdef __cplusplus
extern "C" {
#endif  /* __cplusplus */

int vasya1(char *hello);

#ifdef __cplusplus
}
#endif  /* __cplusplus */
Re[4]: Подключение функции к MFC-диалогу?
От: ninja Россия  
Дата: 11.09.03 08:26
Оценка: 1 (1)
а может ты не сделал : Add files to project? и такое бывает ^)
Re: Подключение функции к MFC-диалогу?
От: Bell Россия  
Дата: 11.09.03 13:09
Оценка: 1 (1)
Здравствуйте, MaxS, Вы писали:

Измени расширение vasya.c -> vasya.cpp
Любите книгу — источник знаний (с) М.Горький
Подключение функции к MFC-диалогу?
От: MaxS Удмуртия http://www.sautin.com
Дата: 11.09.03 06:40
Оценка:
Привет,

Есть MFC приложение (диалог), необходимо подключить функцию из .c файла.
Файл vasya.h

extern int vasya1(char *hello);


Файл vasya.c

#include "vasya.h"
int vasya1(char *hello) {
  return 0;
}

Вызываем функцию vasya1 из .cpp файла диалога.
Если добавить файлы vasya.h и vasya.c в проект, то VC ругается:
vasya.c(4) : fatal error C1010: unexpected end of file while looking for precompiled header directive

Если отключить precompiled headers, то VC выдает:
error LNK2001: unresolved external symbol "int __cdecl vasya1(char *)"

Вопрос: можно ли вызвать функцию vasya1 из диалога (например по нажатию кнопки) и как это сделать?
Трудно ничего не делать, но мы не боимся трудностей.
Re[2]: Подключение функции к MFC-диалогу?
От: MaxS Удмуртия http://www.sautin.com
Дата: 11.09.03 07:23
Оценка:
Здравствуйте, YVR,

Вы писали:

YVR>
YVR>#ifdef __cplusplus
YVR>extern "C" {
YVR>#endif  /* __cplusplus */

YVR>int vasya1(char *hello);

YVR>#ifdef __cplusplus
YVR>}
YVR>#endif  /* __cplusplus */
YVR>


Пробовал как ты сказал (добавил твой код в vasya.h) — не работает.
выдает : error LNK2001: unresolved external symbol "int __cdecl vasya1(char *) — как раньше.

Как насчет установки/отключения "Not using Precompiled headers" в меню Settings.
Трудно ничего не делать, но мы не боимся трудностей.
Re[3]: Подключение функции к MFC-диалогу?
От: YVR  
Дата: 11.09.03 07:45
Оценка:
Здравствуйте, MaxS, Вы писали:

MS>Пробовал как ты сказал (добавил твой код в vasya.h) — не работает.

MS>выдает : error LNK2001: unresolved external symbol "int __cdecl vasya1(char *) — как раньше.

MS>Как насчет установки/отключения "Not using Precompiled headers" в меню Settings.


1) Нужно функцию vasya1 объявляеть в Диалог.cpp через #include "vasya.h"
М.б. после изменений что-то не пересобралось — сделай полную пересборку.

2) "Not using Precompiled headers" действительно нужно, но только для vasya.c
Re[3]: Подключение функции к MFC-диалогу?
От: MaxS Удмуртия http://www.sautin.com
Дата: 12.09.03 06:05
Оценка:
Здравствуйте, MaxS, Вы писали:

MS>Здравствуйте, YVR,


Спасибо всем, все заработало после того как я добавил:

#ifdef __cplusplus
extern "C" {
#endif  /* __cplusplus */

int vasya1(char *hello);

#ifdef __cplusplus
}
#endif  /* __cplusplus */


И сделал Rebuild All. Спасибо.
Трудно ничего не делать, но мы не боимся трудностей.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.