Gå til innhold

problemer med visual c++


Anbefalte innlegg

et rimelig enkelt program (bare for å teste):

#include <iostream>

#include <cstdlib>

 

using namespace std;

 

int main()

{

  cout << "Hei Verden! -- Dette er mitt første program skevet i C++!" << endl;

 

  system("pause");

  return(0);

}

 

og feilmeldingen:

--------------------Configuration: funskjonspekere - Win32 Debug--------------------

Compiling...

main.cpp

Linking...

LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16

Debug/funskjonspekere.exe : fatal error LNK1120: 1 unresolved externals

Error executing link.exe.

 

funskjonspekere.exe - 2 error(s), 0 warning(s)

 

hva er feilen her egentlig? virker som om jeg har problemer med en lib-fil? installasjons-cden er vel kanskje ikke heeelt orginal. :blush: kan det være noe feil på den kanskje?

Lenke til kommentar
Videoannonse
Annonse
Hvis du har manualen vil du kanskje kunne plukke opp noe nyttig om forskjellen på konsoll- og Win32-programmer.

hva mener du med det? her er det bare snakk om kommandolinje.. kompilerte det samme prog i dev-c uten problemer. men qt funker vel bare i msvs, så jeg vil gjerne at den skal funger også [vet at alt kan gjøres i linux, men det er uaktuelt! :thumbdown: ].

Lenke til kommentar
På feilmeldingen kan det se ut som VS prøver å linke et Win32-program, VS kan produsere både konsoll og Win32-programmer.

ja, men jeg mener det alltid står win32 der. siden programmet skal kjøre på win32-platfomen. tror jeg da.

 

konsoll eller grafisk er bare ekstra biblioteker for utseende. eller ..?

Lenke til kommentar
Ok, i klartekst: Win32-programmer har ingen int main()-metode (i motsetning til konsoll), derfor den link-erroren.

der tar du feil.

 

for det første; de har en main metode, alle har det.

og for det andre; jeg prøvde å endre returverdien til void, og prøvde å ta den bort. ingen endring..

 

fant feilen. hadde valgt 'win32 application' i stedenfor 'win32 console application'. så du hadde på en måte rett i noe av det du sa tidligere. :blush: (men det står forstatt Configuration: funksjonspekere - Win32 Debug )

 

takk for at du prøvde :p

Lenke til kommentar

Et konsollprogram er også et win32 program.

 

Hvis jeg husker rett så er det subsystem switchen til linkeren som avgjør hvilket entrypoint som brukes. For programmer som ikke bruker konsollen bruker vi WinMain(), mens for de som trenger den bruker vi main(). Man kan også lage vinduer fra en konsollapplikasjon!

 

Det finnes også andre subsystem switcher blant annet for drivere og lignende.

Lenke til kommentar

Ok, ifølge Visual Studios definisjon. Du fant jo selv ut at det skiller mellom Win32 og Win32 Console. WinMain er så vidt jeg vet standard entry-point for regulære Win32-programmer. Nå er det en stund siden jeg har programmert mot Win32 API, men jeg gikk igjennom Charles Petzolds murstein på emnet en gang.

Lenke til kommentar

Skjønte hva du mente helt fra starten av A_N_K, og jeg er ganske enig med deg. Men du vet hvordan oss nerder kan være iblant ;)

 

Men det er faktisk et poeng i at et konsollprogram også pr. definisjon også er et win32 program. Du kan faktisk lage en fullverdig GUI applikasjon (uten WinMain) fra et konsollprosjekt. Men det er jo lite praktisk med konsollen :)

 

Hva vi sier og mener i "dagligtale" blir noe helt annet ....

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...