Help met Hello World.

Status
Niet open voor verdere reacties.

robbiehelp

Gebruiker
Lid geworden
7 mrt 2009
Berichten
31
Hallo ik ben een beginner met programeren al dat soort dingen, nu volg ik een tutorial om Hello World te maken. Het probleem zit hier:


1>------ Build started: Project: Hello World, Configuration: Debug Win32 ------
1>Build started 17-7-2010 20:55:43.
1>InitializeBuildStatus:
1> Touching "Debug\Hello World.unsuccessfulbuild".
1>ManifestResourceCompile:
1> All outputs are up-to-date.
1>LINK : error LNK2001: unresolved external symbol _mainCRTStartup
1>c:\users\rob\documents\visual studio 2010\Projects\Hello World\Debug\Hello World.exe : fatal error LNK1120: 1 unresolved externals
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:00.10
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Ik gebruik Visual Studio 2010 van microsoft, kan iemand mij vertellen wat ik verkeert doe. Dit is mijn code:


/*
Program: Hello world
Programmer: Robbie de Jonge
Description: Schrijft de tekst Hello, world! naar het beeldscherm.
*/
#include <iostream>

using namespace std;

// the program starts here
void main()
{
// write the text to the screen
cout << "Hello, world!";
}

Alvast bedankt!
 
Ik ben zelf programmeer, maar C/C++ ken ik niet zo goed. Is het niet iostream.h ipv iostream? Sorry als ik onzin uitkraam, ben beter met C#.

Robert
 
Beste,

De kans bestaat dat je je project verkeerd aangemaakt hebt. Begin best even gewoon opnieuw met een vers project.
Ik gebruik MS Visual C++ 2008 Express Edition, maar volgens mij blijft de 2010 versie hiervoor grotendeels hetzelfde. Doe het volgende: File -> New -> Project. Kies rechts "Win32" en rechts "Win32 Console application". Vul een naam in ("Hello World" bijvoorbeeld); laat Solution Name maar leeg. Druk OK. De wizard opent, click "next". Kies application type "Console application", en vink "Precompiled header" uit; click finish. Vul hier je code in. Met je code zelf was niets mis; met een rechtstreekse copy-paste werkte het hier perfect. Je main mag wel degelijk van het type void zijn, in tegenstelling tot wat Powerdesigner zei.

Het is misschien een aanrader om een tutorial op te zoeken over werken met de Microsoft Visual IDE. Gek genoeg kan je hier véél mee fout doen waardoor foutloze code nog steeds niet wilt werken. Op de volgende website kan je zeer duidelijke uitleg vinden over het gebruik van MS Visual. (Kies wel de juiste; je wilt die voor C++ natuurlijk.)

http://msdn.microsoft.com/nl-nl/beginner/bb308891(en-us).aspx

Succes!
 
@Gaminic

Hey,
Bedankt voor de oplossing Gaminic het werkte wat jij zij, de fout zat bij de "Precompiled header".
Nu heb ik nog een probleem, of het hoort zo, de zwarte box komt omhoog en ik krijg een mili seconde om het te lezen en dan gaat hij alweer weg... :(

Alvast bedankt, en bedankt voor de snelle hulp!

Robbie
 
Hetmoet zijn int main() ipv. void main()

Groet
Powerdesigner

void main is gewoon goed, alleen je laat niet aan de overige progremmas zien dat het is afgelopen door geen return.

Verder, als je het zwarte schermpje wilt houden
zoiets

int main()
{
cout << ""<<endl;
getchar();
}
 
Beste,

Dit probleem komt enkel voor als je runt met debug. Kies "Start without Debugging" en het console scherm zal openblijven tot je een toets indrukt. Een andere optie, indien je de debugger graag zou gebruiken, is zoals NLScotty zei: voeg een read commando toe op het einde. Een cin commando is voldoende.
 
void main is gewoon goed

Niet volgens de ISO standaard (pdf).
Volgens die standaard zijn alleen:
[cpp]int main() { /* ... */ }[/cpp]
en
[cpp]int main(int argc, char* argv[]) { /* ... */ }[/cpp]
goed.

Mijn compiler geeft op de code van de TS dan ook een foutmelding:
frank@darkstar:/tmp$ g++ -o void void.cpp
void.cpp:6: fout: '::main' must return 'int'
 
Niet volgens de ISO standaard (pdf).
Volgens die standaard zijn alleen:
[cpp]int main() { /* ... */ }[/cpp]
en
[cpp]int main(int argc, char* argv[]) { /* ... */ }[/cpp]
goed.

Mijn compiler geeft op de code van de TS dan ook een foutmelding:

normal gesproken is void ook gewoon goed, voor bepaalde onderwerpen moet je dit zelfs gebruiken zodat andere programmas blivjen doorgaan zonder dat ze doorhebben dat iets is weggevallen. Welke compiler gebruik je dan?
 
Beste,

Het is wel degelijk "goed C++" om void main() te gebruiken en zowat elke bekende compiler zal dit ondersteunen, maar het is inderdaad "beter" om de int main() met return 0; te gebruiken. Het kan immers geen kwaad om de int versie te gebruiken indien deze niet nodig is, terwijl andersom wel het geval kan zijn. Maak er dus best de gewoonte van om een int main() te gebruiken.
 
void biedt uiteindelijk wel meer mogelijkheden dan int, maar als basis gewoon int gebruiken.
 
Hey,
Bedankt voor de oplossing Gaminic het werkte wat jij zij, de fout zat bij de "Precompiled header".
Nu heb ik nog een probleem, of het hoort zo, de zwarte box komt omhoog en ik krijg een mili seconde om het te lezen en dan gaat hij alweer weg... :(

Alvast bedankt, en bedankt voor de snelle hulp!

Robbie

je moet cin.get(); na helloword sharijven dant pauzeert het programma, zoals dit dus :

int main()
{
cout<<"Hello World!\n";
cin.get();
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan