Problem z programowaniem w "M$ Visual C++ 2008"

Witam. Mam na płycie taki program i zaczynam się uczyć C++. Ściągałem poradnik w pliku pdf i tam jest taki tekst

// First - pierwszy program w C++

#include 

#include 

void main()

{

std::cout << "Hurra! Napisalem pierwszy program w C++!" << std::endl;

getch();

}

I mi wyrzuca błąd. Lecz gdy dam taki to działa.

// second.cpp : Defines the entry point for the console application.

//


#include "stdafx.h"

#include 

#include 

void main()

{

std::cout << "Hurra! Napisalem pierwszy program w C++!" << std::endl;

getch();

}

Chyba powinno być na odwrót… Pierwszy działa, drugi nie. To pewnie dlatego, że po prostu nie masz pliku nagłówkowego stdafx.h :

#include "stdafx.h"

Usuń to co pow. i będzie wszystko OK.

Nie wcale się nie pomyliłem. Ten pierwszy wywala błąd, z drugim jest dobrze.

#include "stdafx.h"

Bez tego w ogóle nic nie działa, a w żadnych skryptach takich nie ma tego.

File -> New Project -> wybierasz Win32 Console Application -> podajesz nazwę -> OK -> w wizardzie Next -> następnie zaznaczasz “Empty Project” -> Finish.

Potem w Solution Explorerze do Source Files dodajesz nowy plik “Main.cpp” i piszesz kod, wtedy już nie wymaga tamtego pliku.

Jakie W mam wybrać??

W Visualu bierzesz File->New->Project W okienku wybierasz Win32project i podajesz nazwę. W następnym okienku klikasz Next> a potem wybierasz console application i zaznaczasz Empty project potem Finish. Po prawej stronie znajduje się taki pasek, masz tam nazwę projektu i 3 foldery. Klikasz prawym przyciskiem myszy na nazwę projektu, wybierasz Add->New Item… wybierasz C++ file (.cpp) i podajesz nazwę, np. main. Co do kodu, to nie lepiej zapisać zamiast:

#include 

#include 

void main()

{

std::cout << "Hurra! Napisalem pierwszy program w C++!" << std::endl;

getch();

}

tak:

#include 


using namespace std;


int main()

{

cout << "Hello World!";


getchar();

return(0);

}

?

A… i jeszcze jedno. Na początek nie polecam Visual C++, tylko Dev-C++ (wiem, wiele osób się ze mną nie zgodzi), ale np. jeśli napiszesz coś w Visualu, to jeśli wyślesz ten program jakiejś osobie ona musi posiadać biblioteki Visuala, a w Dev-C++ tego niema.

KijekPL23 , miło, że powtórzyłeś mojego posta :wink:

A zamiast Deva na początek lepsze byłoby CodeBlocks.

Nie prawda. Wystarczy wybrać opcje “Release” i wtedy już niepotrzeba żadnych bibliotek. A co do tych bibliotek, to VC++ linkuje je żeby była możliwość debugowania :wink:

Zapoznaj się proszę z tą stroną i zmień tytuł na

konkretny. Inaczej temat poleci do śmietnika.

Nadal będzie potrzeba :wink: Trzeba przestawić linkowanie tych bibliotek na statyczne(co nie jest zalecane), a nie dynamiczne*. I te biblioteki nie są potrzebne do debugowania, to są podstawowe biblioteki czasu uruchomienia(które mają swoją wersje Debug) :wink:

* - Properties->C/C+±>Code Generation->Runtime Library zmienić na Multi Threaded albo Multi Threaded Debug.

Ja jeśli ustawie na “Release” to już nie są wymagane żadne biblioteki :slight_smile: Sprawdzałem na kompie gdzie mam VC++ i na lapku gdzie mam Win 7 i VC++ niema, w obu przypadkach program działał jak należy :wink:

Nie :wink: Możliwe, że jakiś program zainstalował za Ciebie pakiety redystrybucyjne i dlatego Ci działa. Wystarczy sprawdzić jakimś programem do sprawdzania zależności i się przekonać :wink:

Win 7 ma je pewno sam w sobie, dlatego nie trzeba niczego doinstalowywać.