У вас не определён "string". Включая телепатию, предположу что это std::string из стандартной библиотеки. Этот класс включён в пространство имён std, и вам нужно указать, что он берётся именно от туда.
Или перед первым использованием (обычно в начале файла) написать:
using namespace std;
или везде заменить string на std::string.
P.S. Плохо заданный вопрос...
Re[2]: extern "C"
От:
Аноним
Дата:
17.12.08 09:29
Оценка:
Здравствуйте, Arsenicum, Вы писали:
A>Здравствуйте, sq-Weezee, Вы писали:
A>... SW>>студия ругается: SW>>error C2059: syntax error : 'string'... A>...
A>У вас не определён "string". Включая телепатию, предположу что это std::string из стандартной библиотеки. Этот класс включён в пространство имён std, и вам нужно указать, что он берётся именно от туда. A>Или перед первым использованием (обычно в начале файла) написать: A>
A>using namespace std;
A>
A>или везде заменить string на std::string.
A>P.S. Плохо заданный вопрос...
Сорри, вопрос действительно задан плохо. Нужно написать dllку. Создаю проект в студии, прикрепляю файл, вида:
Собственно возникает вопрос, нужно ли менять какие либо настройки в студии, чтобы номано компилировалось или что я делаю не так?
Re[3]: extern "C"
От:
Аноним
Дата:
17.12.08 09:46
Оценка:
Здравствуйте, Аноним, Вы писали:
А>Собственно возникает вопрос, нужно ли менять какие либо настройки в студии, чтобы номано компилировалось или что я делаю не так?
Странно... проверил в 2003-й и 2008-й студиях — все компилируется. Выложи что ли минимальный тестовый проект с ошибкой. Может у тебя в строке "extern "C"" затесались левые символы (русские например), попробуй ее перепечатать.
В языке С так нельзя написать.
Хочешь писать на С++ заводи main.cpp
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Аноним, Вы писали:
А>Сорри, вопрос действительно задан плохо. Нужно написать dllку. Создаю проект в студии, прикрепляю файл, вида:
А>main.c
А>и компилятор ругается на строчку:
А>
А>extern "C"
А>
А>как:
А>error C2059: syntax error : 'string'
А>STL тут не используется
А>Собственно возникает вопрос, нужно ли менять какие либо настройки в студии, чтобы номано компилировалось или что я делаю не так?
Вы или компилируйте как С++ и тогда вам понадобится extern "C" или уберите его и компилируйте как С
А>Сорри, вопрос действительно задан плохо. Нужно написать dllку. Создаю проект в студии, прикрепляю файл, вида: main.c А>Собственно возникает вопрос, нужно ли менять какие либо настройки в студии, чтобы номано компилировалось или что я делаю не так?
Если не хочешь переименовывать файл в cpp, то добавь ключ /TP всему проекту или /Tp файлу main.c
Re: extern "C"
От:
Аноним
Дата:
17.12.08 15:18
Оценка:
всем пасиба, нужно именно на С, думал что в C(не С++) запись корректна, оказалось нет.
На мой взгляд хороший выход из ситуации использовать макрос __cplusplus (VC-specific, но никто же не мешает и на других компиляторах определять такой при компиляции как C++)
Здравствуйте, Tilir, Вы писали:
T>На мой взгляд хороший выход из ситуации использовать макрос __cplusplus (VC-specific, но никто же не мешает и на других компиляторах определять такой при компиляции как C++)
1) если надо писать с-программу, то на кой его использовать? Ты думаешь main.c когда-то будут компилировать как С++? Интересно, зачем?
2) Вообще-то макрос вроде бы стандартный а не MS-spec
3) И аналогичный совет в этой ветке уже давали, кстати.
ТАК ВОТ, ВАЖНО ЗАМЕТИТЬ, что макрос __cplusplus обычно используют В ХЕДЕРАХ. Просто потому, что хедеры могут включаться из С и из С++ кода.
А *.с, а тем более main.c обычно так не делают
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском