реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Проект в Иаре с файлами ".с" и ".сpp"
Twen
сообщение Dec 26 2011, 08:15
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543



Добрый день. Я работаю в Иаре и захотел создать проект, в котом были бы файлы на с и на cpp...но я столкнулся с проблемой...
У файле cpp объявляю сам класс и также функцию, работы с ней, у .h файле объявляю функцию работы с классом для доступа к ней от других фалов. Когда у файле main.c не делаю вызова функции ReadSalary(); тогда все работает, как только вызываю , пишет Error Li005 no definition for "long ReadSalary(void) ".

Сам код смысла не имеет, приведен для примера.


Пример, файл .cpp:

class employee
{
public:
float change_salary(float)
{
return salary;
};
long get_id(void)
{
return employee_id;
};
private:
char name [64] ;
long employee_id;
float salary;
};

employee worker;


long ReadSalary(void)
{
return worker.employee_id();
}

Файл .h
long ReadSalary(void)
{
return worker.employee_id();
}


Теперь файл main.c
main
{
long id;
id = ReadSalary();
}

Когда у настройках файла .cpp ставлю компилить С++, а файл main, компилить C, то вылазит ошибка ...

Хотел у файле .h записать , но вылезла ошибка типа не понимает синтаксиса extern "C" , может что-то нужно подключить ?

extern "C" {
long ReadSalary(void)
{
return worker.employee_id();
}
}
Go to the top of the page
 
+Quote Post
demitar
сообщение Dec 26 2011, 11:33
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 17
Регистрация: 3-09-09
Пользователь №: 52 170



Попробуйте в h-файле объявить прототип вашей функции так:

CODE
#ifdef __cplusplus
extern "C" {
#endif

long ReadSalary(void);

#ifdef __cplusplus
}
#endif

Go to the top of the page
 
+Quote Post
Twen
сообщение Dec 26 2011, 12:50
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 163
Регистрация: 7-02-09
Пользователь №: 44 543



Цитата
#ifdef __cplusplus
extern "C" {
#endif

long ReadSalary(void);

#ifdef __cplusplus
}
#endif


Спасибо, все работает!
А вообще при написании проекта на с и с++ компилятор с ума не сходит?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 19:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.0206 секунд с 7
ELECTRONIX ©2004-2016