» »

Pomoč?

Pomoč?

4DFX ::

Zelo rad bi se naučil programirati v C++, ampak me pri tem zavira ogromno stvari.
Doslej sem se naučil napisati HelloWorld program in nič drugega... ker nikoli nič ne dela.

Primer:
Grem na http://www.winamp.com/nsdn/winamp2x/dev/plugins/vis.jhtml
in downloadam prvi plugin (Visualization Plug-in SDK).
Odprem ga v MSVC++6 in zaženem program.
Kompajla se perfektno. Ko pride do Buildanja dobim tisto good'ol napako:

--------------------Configuration: SVIS - Win32 Debug--------------------
Compiling...
SVIS.C
Linking...
Creating library Debug/SVIS.lib and object Debug/SVIS.exp
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/SVIS.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

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

Kakšna ideja? Sem na robu obupa... ne vem kako ste se ostali naučili c++ če nikol nič ne dela.

Senitel ::

To je odličen primer kako se NE učit C++ (z programiranjem pluginov)... :\
Plugini so običajno (vedno) dll knjižnice in jih moraš tako tudi prevajat (torej Win32 Dynamic-Linked Library project in ne Win32 application project ozirom Win32 console application).
DLL-ji ne potrebujejo zadev ala main ali WinMain, običajne aplikacije pa to potrebujejo (precej nujno).

4DFX ::

heh... lahko ti dam še sto takih primerov

Torej se c++ ni mogoče naučit?

Prebral sem že kakih 5 knjig o c++ in iz vseh sem se naučil samo to:
#include (iostream.h) //ne moram dat pravokotnih oklepajev, ker je forum html...
int main() {
cout (( "Hello World!" (( endl;
return 0;
}

Ampak kaj mi pomaga tak gnil program?
Rad bi napisal kaj bol uporabnega/zanimivega/bolšega/...
Res je smešno, da lahko naredim več v QuickBASIC-u, kakor v cplusplusu.

@ljash ::

4DFX: nč ti ne bo pomagal, če boš samo brau knjige o programiranju in jih ne boš šteku. Poskusi raje s kakimi tutoriali al pa s čim podobnim.

Use GOOGLE!

4DFX ::

Hmm... ok.
Grem na Google, in mal iščem.
Ter odkrijem nekej zelo zanimivga in poučnega.
NeHe C++ GameDev... kul.
Grem najdt tutorial... lession01
Downloadam... kompajlam (vse ok), buildam... in glej ga zlomka:
--------------------Configuration: Lesson1 - Win32 Debug--------------------
Compiling...
Lesson1.cpp
Linking...
Lesson1.obj : error LNK2001: unresolved external symbol _gluPerspective@32
Lesson1.obj : error LNK2001: unresolved external symbol __imp__glLoadIdentity@0
Lesson1.obj : error LNK2001: unresolved external symbol __imp__glMatrixMode@4
Lesson1.obj : error LNK2001: unresolved external symbol __imp__glViewport@16
Lesson1.obj : error LNK2001: unresolved external symbol __imp__glHint@8
Lesson1.obj : error LNK2001: unresolved external symbol __imp__glDepthFunc@4
Lesson1.obj : error LNK2001: unresolved external symbol __imp__glEnable@4
Lesson1.obj : error LNK2001: unresolved external symbol __imp__glClearDepth@8
Lesson1.obj : error LNK2001: unresolved external symbol __imp__glClearColor@16
Lesson1.obj : error LNK2001: unresolved external symbol __imp__glShadeModel@4
Lesson1.obj : error LNK2001: unresolved external symbol __imp__glClear@4
Lesson1.obj : error LNK2001: unresolved external symbol __imp__wglDeleteContext@4
Lesson1.obj : error LNK2001: unresolved external symbol __imp__wglMakeCurrent@8
Lesson1.obj : error LNK2001: unresolved external symbol __imp__wglCreateContext@4
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Lesson1.exe : fatal error LNK1120: 15 unresolved externals
Error executing link.exe.

Lesson1.exe - 16 error(s), 0 warning(s)


In spet nič ne dela.

4DFX ::

Se opravičujem... pozabu sem dodat libraryje v projekt... no, zdej to zgleda tkole:
--------------------Configuration: Lesson1 - Win32 Debug--------------------
Linking...
LINK : fatal error LNK1104: cannot open file "and.obj"
Error executing link.exe.

Lesson1.exe - 1 error(s), 0 warning(s)

4DFX ::

Ups... še ena napaka... nekak je nek "and" pršu vmes :)
No v glavnem če to popravm, nardim tko k piše... spet pridem do tistega klasičnega sporočila:
--------------------Configuration: Lesson1 - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Lesson1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

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

Senitel ::

In zakaj greš vedno delat Win32 console application? Konzolne aplikacije VEDNO rabijo main (ki ga ti nimaš), in običajen Win32 application (okenska aplikacija) VEDNO potrebuje WinMain (ki ga imaš). Kako ti naj kaj rata, če ne veš kaj sploh hočeš naredit (Win32 application ali Win32 console application)?

Reso ::

4DFX ::

Res sem vam hvaležen, da se sploh ubadate z mano.

Senitel: Zavedam se da vsi programi potrebujejo main funkcijo... Si pogledal ta NeHe tutorial ( http://nehe.gamedev.net/data/lessons/vc/lesson01.zip)?

Mene samo zanima, zakaj tako pogosto dobim to eno in isto napako?
Vsi ste tako brihtni, ampak nobeden ne ve kako se tega znebit...

No naj vam povem, da se to zgodi verjetno zaradi tega, ker je moj VC++6 uničen.
Do tega zaključka sem prišel včeraj, ko mi je prijatelj, ki ma kopijo moje izdaje, pokazal, da njemu naredi isto napako.

Reso ::

Očitno narobe razmišljaš o učenju programiranja. Ponavadi začneš z zelo lahkimi programi, ki delujejo v konzoli (command prompt) in nato preideš na bolj zahtevne win aplikacije,directX.... Večino časa boš pri učenju porabil za odkrivanje algoritmov za vedno bolj zahtevne probleme.
Poskusi z bolj enostavnimi primeri (naprimer www.cplusplus.com) za kompajlanje. Ta zadnji program mislim da potrebuje še cel kup dodatno naloženih knjižnic, ki jih kot začetnik, zelo težko razumeš in še seveda drugačno kompajlanje.

Senitel ::

Meni se ta NeHe-jev project povsem vredu prevede.
Glede na tvoje težave ti lahko povsem točno povem kaj počneš:
-potegneš dol lesson01.zip
-extractaš zip pač v en direktorij
-greš v tist direktorij
-dvakrat klikneš na lesson01.cpp
-VC 6 ti odpre file kot file
-klikneš build
-VC 6 ni zadovoljen ker nima projekta in kreira Win32 console application projekt (ki potrebuje funkcijo "main", ki je lesson01.cpp nima)
-linker izpljune kup errorjev ker mu manjkajo OpenGL funkcije (to si že ugovoil in si dodal ustrezne lib knjižnice v project settings)
-ko vse te funkcije imaš ti še vedno manjka main in ti ne veš kaj ti je storiti
Imam prav?
Kaj ko bi ta zip potegnil še enkrat dol, ga še enkrat ekstraktal in še enkrat šel v tisti direktorij in dvakrat kliknil na Lesson01.dsw namesto Lesson01.cpp?
Zakaj workspace-i (.dsw) in project-i (.dsp)? Zato, ker ko boš nekoč velik programer in boš imel milijon .cpp in .h fileov...

4DFX ::

Hmm...
...
?!?!
...
.......
???
Hm..
dela!!
...
Kr dela!!!
:)))

Ja, kva nej rečem... hvala obema, ane :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C++] github projekt

Oddelek: Programiranje
11808 (641) kow
»

[VC++] Napaka pri prevajanju

Oddelek: Programiranje
141623 (1364) Jean-Paul
»

kaj zna c#

Oddelek: Programiranje
151692 (1504) snow
»

openGL v visual c++ 6.0

Oddelek: Programiranje
211842 (1569) Lord_Rand
»

c++ compiling

Oddelek: Programiranje
5943 (884) Gundolf

Več podobnih tem