| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > Не компилируется программа в Visual Studio |
| Автор: voland55 6.6.2009, 21:42 | ||
Учусь программировать по Джессу Либерти, дощел до очередного задания и вот
вот что мне выдает Visual c++ express edition http://imglink.ru/show-image.php?id=3086ca20fa2dbda1e16072b291150fdf писал тот же вопрос на forum.xakep.ru сказали мол отключи манифест. Я спрашиваю мол где отключить-пишут покопайтесь в настройках.Не подскажите где точно? |
| Автор: jonie 7.6.2009, 10:45 |
| http://imglink.ru/show-image.php?id=dc2a8a6b87de8301bd50349b3124d18e как я пологаю. |
| Автор: voland55 7.6.2009, 23:50 |
| возможно и там.эмммм.не могли бы вы написать путь до этой опции.у меня руссифицированный VC++. и кстати -чтоб не создавать новую тему Вот параллельно почитываю Фленова-с++ глазами хакера.там в первом задании сказано создайте проект MFC видимо версия программы была старой. В новых этот шаблон наверно переименован вопрос в какой из этих - http://imglink.ru/show-image.php?id=aab9c48b90ea4e880fb9e396465461f5 спасибо.извините за нубские вопросы.я думаю все же когда то начинали)) |
| Автор: nerezus 8.6.2009, 00:39 | ||
|
| Автор: SanyaDooM 8.6.2009, 01:59 | ||
| В 3-й строке твоего кода, объявлен шаблон функции main() без точки с запятой, возможно сдесь ошибка, должно быть так: int main(); Хотя обычно не нужно объявлять шаблон функции main(), поэтому 3-ю строку нужно удалить или закоментировать, попробуй и так. В строке 6 функция у тебя объявлена Demonstrationfunction(), а вызывается в строке 16 как DemonstrationFunction(). Разница в имени функции, смотри внимательно, буква f и F, регистр в имени функции в с++ учитывается Demonstration function Demonstration Function Вот твой код, только без ошибок:
|
| Автор: voland55 8.6.2009, 09:03 |
| так как мне создать проект MFC в vc++ если его там в списке нет или он был заменем или изменено название-есть только такие проекты http://imglink.ru/show-image.php?id=f8a34629dafbf055d578daa74d98ab2f |
| Автор: voland55 10.6.2009, 16:03 | ||
а это почему не компилится? |
| Автор: jonie 10.6.2009, 22:44 |
| main объявлен, но не определен как минимум. |
| Автор: voland55 10.6.2009, 22:46 |
| а как это сделать не подскажите?просто я тока тока начал... |
| Автор: voland55 11.6.2009, 12:42 | ||
а что посоветуешь по этой теме,просто не хотелось бы банальщину писать какую нибудь. |
| Автор: jonie 11.6.2009, 16:14 | ||||
|
| Автор: voland55 11.6.2009, 21:48 |
| странно не компилируется....ни в visual express edition ни полновесной visual 2008 Вот собственно что выдает http://imglink.ru Error 1 error C2447: '{' : missing function header (old-style formal list?) c:\documents and settings\мы\мои документы\visual studio 2008\projects\проба2\проба2\4.cpp |
| Автор: voland55 12.6.2009, 10:00 |
| #include <iostream> using namespace std; int main(); int Add (int x, int y); { cout << " In Add() ,received "<<x<<" and "<<y<<" \n"; return (x+y); } int main() { Add(3,5); system ("pause"); return 0; } вот в чем проблема |
| Автор: Irdis 12.6.2009, 14:55 |
| и уберите два мэйна, зачем вам так много |
| Автор: SanyaDooM 12.6.2009, 19:19 | ||||
Значит ты создал пустой проект, в пустом проекте exe нету, тебе надо создать его самому. для этого: 1- запусти консоль визуала це плюс плюс меню ПУСК->все программы -> Visual C++ 2008 Express Edition -> Visual Studio Tools -> Visual Studio 2008 Command Prompt 2- в командной сторке напиши так: cl "полный путь к файлу с точкой входа, тоесть к .cpp файлу с функцией main". Например: если твой файл с функцией main() называется myProg.cpp, и находится на диске С: в папке MyProject, то в консоли пиши так: cl C:\MyProject\myProg.cpp Жми Enter на клаве и смотри что написала консоль, должно быть ноль ошибок ( 0 errors). Дальше в среде VC++ по нажатию F5 твоя программа уже будет запускаться, а это сообщение исчезнет. и ещё по поводу приведённого кода, в нём ошибки. Ненужно объявлять прототип функции main, зто надо было в очень старых компиляторах, удали эту сторчку. А в объявлении функции Add у тебя точка с запятой, если после объявления функции сразу идёт её код в скобках то точку с запятой ставить ненадо, вот твой код только правельный:
Удачи, спрашивай если чё недоговорил. |
| Автор: voland55 14.6.2009, 11:32 | ||
| ну да.я так же и написал постом выше.я просто ставлю main чтоб мне не путаться пока. да и кстати.а нельзя просто создать win32 console application со стандартными настройками-там разве не будет exe ? большое спасибо за помощь ,жаль не могу + ставить как оказалось если даже сделать так
все равно на тоже самое нарываюсь.вот у меня вопросик,с коммандной строкой видители не работал запустил а там вот такая штучка http://imglink.ru/show-image.php?id=2c254d93cccbcc893337cf491a4a8fa1 .как там путь переписать? и еще вопрос как создать проект чтоб он создавал экзе?или каждый раз вот так придется прописывать путь вручную? |
| Автор: SanyaDooM 14.6.2009, 14:51 |
| Если создать проект win32 console application со стандартными настройками то .exe будет создан сам, но это сообщение (типа немогу найти .exe) может появлятся если в коде есть ошибки и компилятор спотыкается. После исправления ошибок все компилится и линкуется нормально, и .exe сам создаётся и запускается. Исключение состовляет пустой проект, там надо всё самому. Кстати попробуй исправить ошибки и нажать F7- для компиляции, если ошибок нет то по нажатию F5 может сам создастся exe. Если нет то надо с консоли, очень важно чтоб небыло ошибок ато и консоль не поможет. Смотри лист ошибок View->Other windows->error List. Для навигации в консоли есть стандартные команды Dos команда: cd [Имя папки] cd DirName Переход в папку с именем DirName команда: cd..(две точки) cd.. Переход на один уровень директории назад команда cd\ cd\ переход в корень текущего диска команда C: переход на диск Це. Аналогично D: E: команда dir dir просмотр содержимого текущей папки Но тебе надо запускать команду компиляции с директория который открывается по умолчанию при зарузке консоли, и писать полный путь к своему файлу Main.cpp, или как там он у тебя называется. cl [полный путь к товоему заглавному файлу] пример: cl C:\MyProject\myMain.cpp А вообще попробуй создать стандартный win32 console application и нажми F5. должно откомпилится и создать exe, а потом с этим проектом можно эксперементировать, но не трогай сгенерированный код, например там теперь будет ни main(), а по новому стандарту _tmain(), просто подпиши инклюды и пиши код программы. |
| Автор: voland55 16.6.2009, 09:37 | ||||
вот этот код верен?если да то
|
| Автор: SanyaDooM 16.6.2009, 18:59 | ||
| Нет код с ошибками, во первых ты удалил сгенерированный #include "stdafx.h", он нужен компилятору для ускорения компиляции, а в сторке 9 товего кода из за неправильного упровляющего символа /t (символ выравнивания) строка не закрывается, смотри на подсветку, строка не закрылась и задевает операторы. попробуй так: создай стандартный win32 console application. стери начисто весь код который сгенерирован до последнего символа, скопируй и вставь этот:
Далее нажми F7, а потом F5. Скажи этот код запускается? |
| Автор: voland55 17.6.2009, 09:25 |
| да.создал стандартный проект.впечатал Ваш код, запускается. вообще свой код спечатал 1в1 с Джесса Либерти с++ за 21 день.вот кстати скрин фрагмента http://imglink.ru/show-image.php?id=87fe30ef1db9cca2b623ed2e3e78d988 получается что по его книге уже нет смысла учится (придется тут каждый листинг обсуждать)? и что посоветуете читать по чему можно научится на практике? |
| Автор: SanyaDooM 17.6.2009, 16:44 |
| В принципе книга по которой ты учишься хорошая, но она плохо отсканирована, и можно путать символы (покрайне мере моя копия плохо отсканирована). Но ты сам невнимателен Ну ничего, всё приходит с практикой, я тоже самоучка, и в визуале с++ стал программировать недавно. Сам я учусь из всех источников подряд, это помогает взглянуть на всё с разных точек. Ну удачи! |