1e C++ script

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • powerpuck
  • Registratie: Mei 2010
  • Laatst online: 20-09 13:55
Gegroet allen,
ik weet dat ik niet voor kant en klare oplossing moet vragen, maar dat wil ik ook niet, ik ben nu bezig een tutorial te volgen, en heb deze code, Microsoft Visual C++, geeft echter een error,
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include<iostream>


int main(void)
{
  using namespace std;
  char cChar;
  double dfirstnumber;
  double dsecondnumber;
  char cDoagain;

do
{
    system("CLS");
    cout << "Please enter the first number" << endl;

    cin >> dfirstnumber
    cout << " Please enter the operation that you would like to do"
         << "(+,-,* or /)"  << endl;
    cin >> cChar;

    cout << "please enter the 2nd number" << endl;
    cin >> dsecondnumber
    switch (cChar)
    {
    case '+':
        cout << "The answer is: " << dfirstnumber << " + " << dsecondnumber <<
            " = " << (dfirstnumber + dscondnumber) << endl;
        break;
    case '-':
        cout << "The answer is: " << dfirstnumber << " - " << dsecondnumber <<
            " = " << (dfirstnumber - dscondnumber) << endl;
        break;
    case '*':
        cout << "The answer is: " << dfirstnumber << " * " << dsecondnumber <<
            " = " << (dfirstnumber * dscondnumber) << endl;
        break;
    case '/':
        if(dsecondnumber == 0)
        {
            cout << "Cannot devide by zero" << endl;
        }
        else
        {
            cout << "The answer is: " << dfirstnumber << " / " << dsecondnumber <<
                " = " << (dfirstnumber / dscondnumber) << endl;
        }
        break;
    default:
        cout << "Something went wrong, please try again" << endl;
        break;
    }
    cout << "Would you like to start again? (y or n)" << endl;
    cin >> cDoagain;
}
while cDoagain == 'y' || cDoagain == 'Y');
system("PAUSE");
return 0;
}

Visual C++ geeft deze error:
------ Build started: Project: testrun2, Configuration: Debug Win32 ------
LINK : error LNK2001: unresolved external symbol _mainCRTStartup
D:\C++\testrun2\Debug\testrun2.exe : fatal error LNK1120: 1 unresolved externals
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Ik ga er van uit dat er iets mis zit met de start van het script, maar ik kom er niet uit.
Hints zijn welkom.

Heb al enige ervaring met javascript en php, dus begrijp opzich wel wat ik aan het doen ben en neem niet klakkeloos de tutorial over.

[ Voor 0% gewijzigd door moto-moi op 01-12-2010 22:41 . Reden: ff de highlighter aangezet ;) ]


Acties:
  • 0 Henk 'm!

  • Boudewijn
  • Registratie: Februari 2004
  • Niet online

Boudewijn

omdat het kan

En wat zegt de fout in programma (script ? Nee!) precies over wat je doet?

i3 + moederbord + geheugen kopen?


Acties:
  • 0 Henk 'm!

  • powerpuck
  • Registratie: Mei 2010
  • Laatst online: 20-09 13:55
iets over de _main,
heeft het te maken met de originele code die er stond:
code:
1
2
3
4
5
6
7
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

en die ik van de tut weg moest/kon halen?

Acties:
  • 0 Henk 'm!

  • Nvidiot
  • Registratie: Mei 2003
  • Laatst online: 03-06 16:38

Nvidiot

notepad!

Maak een nieuw, *leeg* C++ console project aan. Voeg dan een nieuwe C++ file toe, met daarin de code in je eerste post. Probeer het dan nog eens te compileren?

What a caterpillar calls the end, the rest of the world calls a butterfly. (Lao-Tze)


Acties:
  • 0 Henk 'm!

  • CoolGamer
  • Registratie: Mei 2005
  • Laatst online: 18:08

CoolGamer

What is it? Dragons?

C++:
1
int main(void)

vervangen door
C++:
1
int _tmain(int argc, _TCHAR* argv[])

zal het zeker oplossen.

Best kans dat hij de standaard main niet oppakt vanwege de standaardinstellingen van het project.

¸.·´¯`·.¸.·´¯`·.¸><(((º>¸.·´¯`·.¸><(((º>¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸<º)))><¸.·´¯`·.¸.·´¯`·.¸.·´¯`·.¸


Acties:
  • 0 Henk 'm!

  • powerpuck
  • Registratie: Mei 2010
  • Laatst online: 20-09 13:55
Vreemd, nu geeft hij die error niet, kwam wel de nodige andere fouten tegen, slordigheden, nu werkt het programma naar behoren, dank!
Kan iemand mischien ook uitleggen wat ik fout heb gedaan? Het is nu opgelost maar nu kan het elk moment weer ontstaan als ik niet weet hoe het ontstond.

edit: Oke bedankt.

[ Voor 3% gewijzigd door powerpuck op 01-12-2010 20:22 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Ik denk dat de linker naar de functie _tmain zoekt in plaats van main.
Om precies te snappen wat er fout gaat moet je je even verdiepen in hoe een compiler werkt en wat hij precies doet.

Gaat de tutorial die je gebruikt misschien ervan uit dat je GCC (GNU C Compiler) gebruikt in plaats van Visual C++? Geen idee of dat uberhaupt een oorzaak is, ben niet meer thuis in Microsoft omgevingen...

En inderdaad, C++ is geen script :+

[ Voor 4% gewijzigd door Verwijderd op 01-12-2010 20:28 ]


Acties:
  • 0 Henk 'm!

  • Nvidiot
  • Registratie: Mei 2003
  • Laatst online: 03-06 16:38

Nvidiot

notepad!

http://stackoverflow.com/...tween-tmain-and-main-in-c

Daar staat wat informatie over wat _tmain nu eigenlijk is. Kort gezegd: een macro die naar main() of wmain() compileert, afhankelijk van of je met unicode ondersteuning compileert of niet.

What a caterpillar calls the end, the rest of the world calls a butterfly. (Lao-Tze)


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:27

.oisyn

Moderator Devschuur®

Demotivational Speaker

Als je _mainCRTStartup mist link je niet tegen de standaard runtime. Waarschijnlijk heb je zitten kutten in je project configuratie of is er een oud project verkeerd geconvert naar een nieuwere VC++ versie oid.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
.oisyn heeft gelijk. Het standaard probleem is /SUBSYSTEM:WINDOWS gebruiken waar je /SUBSYSTEM:CONSOLE nodig had - in het eerste geval heb je geen "int main()" maar een "int WinMain()" nodig.

Dat hele _tmain verhaal is vrijwel zeker irrelevant.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

Verwijderd

Kijk zo leer ik zelf ook weer wat bij. :Y
Pagina: 1