Экспорт функции из модуля.
От: Zeter  
Дата: 10.09.15 13:42
Оценка:
Доброго времени суток. У меня возникла проблема когда я захотел использовать функцию в других модулях программы. Вроде тривиальная задача. Но... в общем вот:
Есть модуль #1 там есть такая функция
Int findunit(string text,map<string,int> objpar,int mode=1)
Я беру эту строку(по крайней мере раньше так катило) и копирую ее в h-файл этого модуля. Но компилятор выдает следующие ошибки:
Improper use of typedef string и ) expected.
В общем ошибки для меня странные. Ругается он на map. Может его нельзя так писать в hнике? Почему на map потому что как только я его убираю сразу все ок.
Re: Экспорт функции из модуля.
От: ArtDenis Россия  
Дата: 10.09.15 13:57
Оценка: +1 -5
Здравствуйте, Zeter, Вы писали:

Z>Доброго времени суток. У меня возникла проблема когда я захотел использовать функцию в других модулях программы. Вроде тривиальная задача


Настойчиво рекомендую почитать
https://www.google.com/search?q=%D1%83%D1%87%D0%B5%D0%B1%D0%BD%D0%B8%D0%BA+C%2B%2B

Большинство подобных вопросов сразу отпадёт
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[2]: Экспорт функции из модуля.
От: ArtDenis Россия  
Дата: 10.09.15 15:13
Оценка: -2
Я так понимаю, минусующие считают, что ТС не стоит читать учебник по С++, который поможет ТС разобраться в таких базовых вещах как препроцессор, а в частности #include?
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re: Экспорт функции из модуля.
От: Дрободан Фрилич СССР  
Дата: 11.09.15 06:48
Оценка:
Zeter:

Z>Int findunit(string text,map<string,int> objpar,int mode=1)

Z>Я беру эту строку(по крайней мере раньше так катило) и копирую ее в h-файл этого модуля. Но компилятор выдает следующие ошибки:
Z>Improper use of typedef string и ) expected.
Z>В общем ошибки для меня странные. Ругается он на map. Может его нельзя так писать в hнике? Почему на map потому что как только я его убираю сразу все ок.


Попробуй написать так в ашнике:
#include <map>
#include <string>

...

int findunit(std::string text, std::map<std::string, int> objpar, int mode = 1);
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Re[3]: Экспорт функции из модуля.
От: Pavel Dvorkin Россия  
Дата: 11.09.15 11:39
Оценка: +3
Здравствуйте, ArtDenis, Вы писали:

AD>Я так понимаю, минусующие считают, что ТС не стоит читать учебник по С++, который поможет ТС разобраться в таких базовых вещах как препроцессор, а в частности #include?


Не знаю, что считают остальные минусующие, но я считаю, что надо либо ответить по существу человеку, либо промолчать.

Например, можно было ответить так

Почитай про включение хедер-файлов

И далее ссылка, но не на google.
With best regards
Pavel Dvorkin
Re[4]: Экспорт функции из модуля.
От: MasterZiv СССР  
Дата: 17.09.15 14:07
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

AD>>Я так понимаю, минусующие считают, что ТС не стоит читать учебник по С++, который поможет ТС разобраться в таких базовых вещах как препроцессор, а в частности #include?


PD>Не знаю, что считают остальные минусующие, но я считаю, что надо либо ответить по существу человеку, либо промолчать.


Для начала пусть вопрошающий объяснить всем, что такое "модуль" в его понимании.
Re: Экспорт функции из модуля.
От: MasterZiv СССР  
Дата: 17.09.15 14:15
Оценка:
Здравствуйте, Zeter, Вы писали:

Перед тем как использовать тип (string в данном случае) он должен быть объявлен.
В данном случае нужно добавить в этот заголовок

#include <string>

и обязательно добавить использование namespace std в сигнатуре этой функции.

Z>Improper use of typedef string и ) expected.
Re: Экспорт функции из модуля.
От: Molchalnik  
Дата: 18.09.15 09:22
Оценка:
Здравствуйте, Zeter, Вы писали:


Z>В общем ошибки для меня странные. Ругается он на map. Может его нельзя так писать в hнике? Почему на map потому что как только я его убираю сразу все ок.


вставь использование namespace'а "std::map" и включи нужные библиотеки через include. Если не поможет — приводи код, указывай среду и компилятор.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.