Гм..Э-ээээ..Аж спрашивать неудобно...Как в Visual C++ использовать WINAPI? Ну а теперь прекратите смеяться и чтайте дальше. Я вроде не дурак и сам знаю, что для этого надо подключить заголовочные файлы с прототипами API-функций. Но в этом-то и вся проблема. Я не могу даже к консольному приложению подключить заголовочные файлы типа iostream - компилятор его подключает но старательно делает вид, что не знает, что такое cin, cout или endl. В чём здесь дело? Может меня глючит? P.S. У меня 8-ая студия и эта ошибка возникает в проэкте любого типа.
А проблема только std, или со всеми. И вообще подробней надо (с сообщениями компилятора и тд.). Какой такой вид? .
Что-то не вижу связи между WINAPI и cin/cout/endl. Что за ошибка выдаётся и кем (компилятором или линкером)?
У меня в 7-й студии была такая фича... когда создавал проект через визард. Что-то у них там покручено с предкомпиляцией хидеров. Я тогда шибко разозлился и создал пустой проект, а потом уже напихал в него все, что мне было нужно.
Извеняюсь за неточности. Исправляюсь. Код: Код (Text): // t.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> int _tmain(int argc, _TCHAR* argv[]) { cout << "Hello" << endl; return 0; } Ошибки(на всякий случай привожу все выходные данные): Код (Text): ------ Build started: Project: t, Configuration: Debug Win32 ------ Compiling... stdafx.cpp Compiling... t.cpp d:\my documents\visual studio 2005\projects\t\t\t.cpp(9) : error C2065: 'cout' : undeclared identifier d:\my documents\visual studio 2005\projects\t\t\t.cpp(9) : error C2065: 'endl' : undeclared identifier Build log was saved at "file://d:\My Documents\Visual Studio 2005\Projects\t\t\Debug\BuildLog.htm" t - 2 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 2Quantum: Консольное приложение я приплёл для того, чтобы было понятно - это не проэкты, а может быть среда. 2Ustus: Я не могу компилировать уже существующие, чужие(!!!) проэкты. Пример с API дам позже, потому что возникает слишком много ошибок и мне его надо пререпроверить самому. P.S. Меня удивило что файла iostream.h просто нет. Есть только iosteam.
а мой пост не прочитал? напиши либо "napespace std;" после include. либо std:: перед каждым оператором из iostream.
Попробуй вот чего. Удали все файлы в проекте кроме t.cpp. Открой его в студии, потом нажми на F7 (ну или на F5 - на знаю как в 8й студии компилить). Студия скажет, что нет файла воркспейса для проекта и предложит его создать. Дальше - как обычно. У меня на 6й студии были глюки из-за того, что подключался stdafx, который пытался тащить куски МФС.
IceStudent В моем случае это проблему не решило. Работает, если добавить #include <iostream> не в main.cpp а в stdafx.h
Бред какой-то.. Код (Text): // t.cpp : Defines the entry point for the console application. // //#include "stdafx.h" #include <tchar.h> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { cout << "Hello" << endl; return 0; } cl /nologo /EHsc t.cpp
И я так же выразился похоже, как я уже написал, что при создании проекта через визард он что-то мутит с прекомпиляцией. Со строчником, естественно, все тип-топ.
Ну если включена прекомпиляция, то обычно изменения stdafx.h не работают до полной перекомпиляции (точнее, до перекомпиляции stdafx.cpp), но вот чтоб наоборот - впервые слышу.
Спасибо, я уже всё понял. Не стоило и темы создавать, в Builder'e всё проще. А вообще в MSDN есть куча примеров и статей на тему namespace'ов, жаль сразу туда не посмотрел. P.S. Ну а теперь мне пора, буду вешаться от стыда.