C++ - brza pitanja iz objektno orij. programiranja zaključana tema

poruka: 175
|
čitano: 45.124
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
17 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir

C++ je superset C-a, tj. jezik koji je nastao kao hibrid objektne i proceduralne teorije. Kompatibilan je s C-om, jer je u vrijeme nastanka to smatralo nužnim.

Prastar je i relativno težak početnicima. Pruža jako bitno znanje (po mom mišljenju), ali istovremeno ostavlja opasnost učenja loših praksi i koncepata, te je izrazito podložan bugovima (najviše s memorijom), jer je izrazito blag prema lošem programiranju da bi dopustio hackove i pružio moć na razini one koju očekuju C programeri.

Tko zna dobro programirati u C++u, u 99% slučajeva svaki drugi jezik neće naći problematičnim.

 

C# je moderan, čisti objektni jezik, sintaksom sličan C++u i jako, jako sličan Javi. Trenutno je (IMHO) najnapredniji široko rašireni programski jezik s podrškom za hrpu modernih patterna, koncepata i s ugrađenom hrpom rješenja koja drastično ubrzavaju razvoj, poput integriranog upitnog sustava (LINQ)(preko ekspresijskih stabala), lambda izraza, dinamičkih opcija, ugrađene podrške za paralelno računarstvo, parsiranje objektnih struktura, XML-a, i sl. i visokom integracijom u .NET framework.

Pravi znak inteligencije nije znanje, već mašta - Albert Einstein
14 godina
neaktivan
offline
C++ - brza pitanja iz objektno orij. programiranja

Stvar je u tome što sam ja kao totalni laik došao u novu srednju i uletio u grupu za programere čisto iz zezancije...Na početku to nisam shvaćao ozbiljno al sam se s vremenom totalno "zakačio" za programiranje.Tamo su se radili zadaci s natjecanja i učila teorija c++...(Više je imalo veze s matematikom nego s programiranjem) ... I tako kako je prošlo natjecanje,svi na to zaboravili,a mene je ipak zanimalo nešto više tj. OOP.Preko ljeta sam radio s demifisticranim c++ i nekim jadnim tutorialima na netu i sad pokušavam raditi nešto novo =D

optimizam je nedostatak informacija
Moj PC  
0 0 hvala 0
17 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir

Nauči C++ i nemaš zime.

Pravi znak inteligencije nije znanje, već mašta - Albert Einstein
14 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir
naxeem kaže...

Nauči C++ i nemaš zime.

C# ništa?

 

Sčim nastaviti nakon demifisticiranog c++a?

optimizam je nedostatak informacija
17 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir

C# je specifičniji od C++a i uvodi neke dodatne stvari koje ti u startu ne trebaju.

Pravi znak inteligencije nije znanje, već mašta - Albert Einstein
14 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir
naxeem kaže...

C# je specifičniji od C++a i uvodi neke dodatne stvari koje ti u startu ne trebaju.

 

Radim s njim već gotovo godinu dana...Nije da nešto strašno  znam al nisam ni na totalnom startu =)

optimizam je nedostatak informacija
16 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir

Kako je već netko napomenuo postoji i managed c++ kao c++/CLI programiranje u skolpu Net-a .
U njemu postoji odmah drug and drop ,naravno VS obvezatan,tako možeš sebi vizualno raditi kao i sa C#-om.
Recimo ispis C++/CLI u konzoli poznati Hello World izgleda :

 

 

Console::WriteLine("Hello World");

return 0;

 

 

 

Private
16 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir
Pijavica kaže...
naxeem kaže...

Nauči C++ i nemaš zime.

C# ništa?

 

Sčim nastaviti nakon demifisticiranog c++a?

 Ako dobro svladaš C++ možeš sa bilo čim....logično neki iz porodice c jezika a to je C#.....ili nešto drugo ako ti predlože .
Za mene je C# bio prirodan nastavak.

 

Private
17 godina
moderator
online
RE: C++ - brza pitanja iz objektno orij. programir
naxeem kaže...
VCL je fantastičan, ali i .NET je dostupan za C++ kao managed framework (i C++ ima svoju managed verziju).

MFC nije baš smeće, mislim da je nepravedno tako ga nazvati, ali je bio dosta surov, kompliciran i nepristupačan u odnosu na VCL i time mnogima odbojan, iako prilično moćan i "čišći" od VCL-a što se tiče "dependency/dll hella" (naravno, ne pošteđen, jer VCL je bio drugačiji samo zato što je tražio dodatne biblioteke).

AFAIK VCL nema dependecyje (posto su vecina komponenti u biti wrapperi WinApi funkcija) - bas u tome je prednost pred nekim drugim frameworkovima - recimo pred Visual Basicovim koji treba imati runtimeove i ActiveX kontrole. Po cemu je MFC mocan - ne bih znao. Onaj iz VS2005 karakterizira vrlo malen broj komponenti (a i ne znam bas nude li se besplatne kontrole na netu - za Delphi/C++ ima ih zaista velika kolicina), losa prilagodljivost (malen broj svojstava), malen broj evenata, nepotrebno komplicirano koristenje (toliko da se covjek pita zasto Visual C++ u nazivu nosi "Visual", a i MFC nije bas napravljen u duhu OOP-a). Da, MFC je bolje nego da rucno ides koristit WinApi, ali u odnosu na VCL je jadan. Namigiva Ne znam - mozda tebi rijec "mocan" znaci nesto drugo od onoga sto znaci meni. S ostalim se slazem.

 

Pijavica kaže...

Stvar je u tome što sam ja kao totalni laik došao u novu srednju i uletio u grupu za programere čisto iz zezancije...Na početku to nisam shvaćao ozbiljno al sam se s vremenom totalno "zakačio" za programiranje.Tamo su se radili zadaci s natjecanja i učila teorija c++...(Više je imalo veze s matematikom nego s programiranjem) ... I tako kako je prošlo natjecanje,svi na to zaboravili,a mene je ipak zanimalo nešto više tj. OOP.

OOP se moze jako dobro nauciti i usavrsiti u razvoju VCL komponenti u Delphiju (nisam pokusao razvijati komponente u C++Builderu - valjda je na istu foru), jer te VCL prisiljava da koristis mnoge koncepte OOP-a. Pa bi ti eto to mozda moglo biti interesantno.

 

A sad - na primjeru cega drugoga bi mogao vjezbati OOP (nasljednjivanje, apstrakciju, enkapsulaciju, polimorfizam...), a da je zasnovano na necem konkretnom (umjesto da imas klasu zivotinja, pa derivirane klase macka i pas, koje ce se razlicito glasati kad pozoves virtualnu metodu glasajse()) - ne znam, ne pada mi trenutno nista na pamet. Nadam se da ce se naci netko s dobrim prijedlogom. Ja sam OOP uvjezbao na razvoju komponenti u Delphiju i na razvoju vlastitog GUI frameworka za Turbo Pascal, koji je imitirao izgled Windowsa i funkcioniranje VCL-a.

17 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir
mbaksa kaže...

AFAIK VCL nema dependecyje (posto su vecina komponenti u biti wrapperi WinApi funkcija) - bas u tome je prednost pred nekim drugim frameworkovima

 

Zadnji put sam VCL koristio 2001. godine i tada si trebao dodatne biblioteke. Bile su nužne. VCL komponente nisu samo wrapperi WinAPI funkcija, nego cjelovite komponente koje uključuju hrpu elemenata sučelja, gridova, lista, renderera, boxova i sl.

Možda si ti imao automatski podešen builder da kod builda u output uključuje DLL-ove, pa nisi znao da su tu ili si buildao sa statičkim bibliotekama u isti exe (što nije najbolja praksa uvijek, jer traži rebuild kod najmanjeg mijenjanja).

Pravi znak inteligencije nije znanje, već mašta - Albert Einstein
17 godina
moderator
online
RE: C++ - brza pitanja iz objektno orij. programir
naxeem kaže...
mbaksa kaže...

AFAIK VCL nema dependecyje (posto su vecina komponenti u biti wrapperi WinApi funkcija) - bas u tome je prednost pred nekim drugim frameworkovima

 

Zadnji put sam VCL koristio 2001. godine i tada si trebao dodatne biblioteke. Bile su nužne. VCL komponente nisu samo wrapperi WinAPI funkcija, nego cjelovite komponente koje uključuju hrpu elemenata sučelja, gridova, lista, renderera, boxova i sl.

Možda si ti imao automatski podešen builder da kod builda u output uključuje DLL-ove, pa nisi znao da su tu ili si buildao sa statičkim bibliotekama u isti exe (što nije najbolja praksa uvijek, jer traži rebuild kod najmanjeg mijenjanja).

U ovom podebljanom lezi kljucna stvar - u paketima komponenti - pa neces to valjda pokusati podvaliti pod "dependency hell"? Iznenađen

 

Prakticki sve komponente leze na WinApiju ili su u cijelosti kod u Delphiju (ili C++Builderu). Cak i one komponente koje jedini doticaj s WinApijem imaju utoliko da se mogu prikazivati na formi i primati evente, dakle koje su efektivno cisti Delphijev kod, jedino sto od T(Win)Controla (ili nekih deriviranih klasa) nasljedjuju osnovne stvari da bi mogle funkcionirati kao kontrole u GUI-ju. To nisu nekakve eksterne komponente spremljene u DLL-ove. To su komponente napisane u Delphiju i ne zahtijevaju nikakve dodatne DLL-ove - koriste iskljucivo DLL-ove koji su sastavni dio Windowsa.

 

Druga je stvar ta sto ti Delphi i C++Builder omogucavaju da biblioteke (pakete) komponenti ne linkas u .exe datoteku kako bi u konacnici imao manju .exe datoteku (ili da postignes efekt slican koristenju DLL-ova - da mozes updateat samo .BPL datoteku koju ti koristi vise programa - no to je namijenjeno prvenstveno tvojim korisnickim paketima, s tvojim komponentama), nego da imas odvojene .BPL datoteke nativnih Delphi+WinApi komponenti. To nisu klasicni Windowsovi DLL-ovi, to nije nesto sto mozes ugurati pod "dependency hell" - to su dinamicke biblioteke s kompajliranim Delphijevim kodom. I taj kod, dakle komponente iz .BPL-ova ne zahtijevaju nikakve dodatne DLL-ove - samo WinApi.

 

To sto ti nisi ukljucio linkanje tih datoteka u .exe datoteku (ili si iskljucio - ne znam kako je podeseno po Defaultu - u Delphiju, barem u starijim verzijama, po defaultu je podeseno staticko linkanje) - to je tvoja stvar (da ne kazem "greska") i to ne znaci da VCL ima neke dependencyje - te datoteke jesu VCL. Nesto vise o paketima imas ovdje: http://delphi.about.com/od/objectpascalide/a/bpl_vs_dll.htm

 

 

PS Ovo vezano u rebuildanje nisam bas shvatio - trazi rebuild (paketa?) kod najmanjeg mijenjanja - cega? Gotovo da i nisam radio u C++Builderu - u Delphiju mi NIKAD nije radio rebuild tih paketa, osim ako nije bila rijec o mojim paketima s mojim komponentama, a cak mislim da sam i tada rebuild morao rucno raditi. Tako da - mozda te sjecanje vara, mozda si imao ukljucenu opciju da rebuilda bas sve (ako uopce ima takve opcije) - a toga si se vrlo vjerojatno mogao osloboditi tako da maknes izvorni kod VCL-a iz putanje pa ne bi imao sto rebuildati. Namigiva

17 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir
mbaksa kaže...

To sto ti nisi ukljucio linkanje tih datoteka u .exe datoteku (ili si iskljucio - ne znam kako je podeseno po Defaultu - u Delphiju, barem u starijim verzijama, po defaultu je podeseno staticko linkanje) - to je tvoja stvar (da ne kazem "greska") i to ne znaci da VCL ima neke dependencyje - te datoteke jesu VCL. Nesto vise o paketima imas ovdje: http://delphi.about.com/od/objectpascalide/a/bpl_vs_dll.htm

 

Očito se nismo razumjeli dobro.

Mislio sam na to da sam sve komponente u VCL-u dinamički linkao, a ne statički, pa sam imao obavezno uključivati nekoliko DLL-ova s aplikacijama. Uslijed nadogradnje neke od komponenti, logično je da je jednostavnije zamijeniti pojedini DLL, nego re-linkati aplikaciju sa statičkim verzijama, zar ne?

E sad, barem u to vrijeme (C++ Builder IDE je u pitanju bio), za svaku grupu komponenti imao si poseban DLL, a mislim da je Borland imao u kratkom vremenu jako puno apdejtova za VCL, što mi je stvaralo muku u održavanju legacy aplikacija na kojima sam radio; klijenti nisu baš bili ažurni, a tada je pojam "auto-update" bio SF, pa bih na 1.44 morao nositi po desetak puta izmjene u klijenta, jer nije svatko imao 120/240LS tada, a ni CDROM, a pržilica je bila 2000 maraka...

Statički linkati app od 20MB exea sam izbjegavao baš zbog neprenosivosti i DLL-ovi su bili istovremeno i jednostavniji i mučni.

 

Vidim, dao si link na BPL koje koriste Borland Delphi aplikacije, ali nisam baš siguran da je C++ VCL koristio BPL datoteke, već sam gotovo 100% siguran da se radilo o DLL-ovima. (doslovno i s tom ekstenzijom). Vjerujem da su bili upravo klasične C++ biblioteke s klasama za VCL komponente.

Prošlo je 10 godina, pa ostavljam mogućnost pogreške.

Pravi znak inteligencije nije znanje, već mašta - Albert Einstein
Poruka je uređivana zadnji put sub 18.9.2010 1:14 (naxeem).
17 godina
offline
RE: C++ - brza pitanja iz objektno orij. programir
naxeem kaže...

 

Vidim, dao si link na BPL koje koriste Borland Delphi aplikacije, ali nisam baš siguran da je C++ VCL koristio BPL datoteke, već sam gotovo 100% siguran da se radilo o DLL-ovima. (doslovno i s tom ekstenzijom). Vjerujem da su bili upravo klasične C++ biblioteke s klasama za VCL komponente.

Prošlo je 10 godina, pa ostavljam mogućnost pogreške.

Koristio je... bar nekakvih 90% komponenti od delfija se moglo koristit i na BC++

I'm going woo woo
17 godina
moderator
online
C++ - brza pitanja iz objektno orij. programiranja

OK, naxeem, glavno da si ti 100% siguran. Bezveze me za*ebavas. Dakle, vrijedi ono sto sam napisao - VCL opcenito nema dependencyje i to mu je jedna od bitnim prednosti u odnosu na neke druge frameworkove (pogotovo u odnosu na Visual Basic). Sav "dependency hell" koji si imao s C++Builderom si si sam stvorio - to nema veze s VCL-om kao frameworkom.

 
0 0 hvala 0
17 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir

Ali potrebni su BPL-ovi, što dođe na isto.

Pravi znak inteligencije nije znanje, već mašta - Albert Einstein
17 godina
moderator
online
RE: C++ - brza pitanja iz objektno orij. programir
naxeem kaže...

Ali potrebni su BPL-ovi, što dođe na isto.

Kome/cemu su potrebni BPL-ovi (zapravo u jednoj verziji C++Buildera to su BPI datoteke - ne znam, valjda Delphi ima BPL, a C++Builder BPI datoteke - u osnovi svrha je ista)? Programu kojeg radis su potrebni samo ako taj kod staticki ne linkas. VCL-u nisu, jer ti BPL/BPI-ovi jesu VCL! Je li ti to konacno sjelo? U BPL/BPI-ovima je kompajliran kod VCL-a. Taj kod nema dependecyje - visi samo na WinApiju. Ti mozes odluciti hoces li dijelove VCL frameworka staticki linkati u .EXE datoteku svog programa ili hoces li ih drzati u BPL/BPI datotekama kako bi imao manju .EXE datoteku.

 

Poruka je uređivana zadnji put sub 18.9.2010 16:43 (mbaksa).
17 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir
mbaksa kaže...
... jedino sto od T(Win)Controla (ili nekih deriviranih klasa) nasljedjuju osnovne stvari da bi mogle funkcionirati kao kontrole u GUI-ju. To nisu nekakve eksterne komponente spremljene u DLL-ove. To su komponente napisane u Delphiju i ne zahtijevaju nikakve dodatne DLL-ove - koriste iskljucivo DLL-ove koji su sastavni dio Windowsa.

 

Druga je stvar ta sto ti Delphi i C++Builder omogucavaju da biblioteke (pakete) komponenti ne linkas u .exe datoteku kako bi u konacnici imao manju .exe datoteku (ili da postignes efekt slican koristenju DLL-ova - da mozes updateat samo .BPL datoteku koju ti koristi vise programa - no to je namijenjeno prvenstveno tvojim korisnickim paketima, s tvojim komponentama), nego da imas odvojene .BPL datoteke nativnih Delphi+WinApi komponenti.

 

mbaksa kaže...

Kome/cemu su potrebni BPL-ovi (zapravo u jednoj verziji C++Buildera to su BPI datoteke - ne znam, valjda Delphi ima BPL, a C++Builder BPI datoteke - u osnovi svrha je ista)? Programu kojeg radis su potrebni samo ako taj kod staticki ne linkas. VCL-u nisu, jer ti BPL/BPI-ovi jesu VCL! Je li ti to konacno sjelo? U BPL/BPI-ovima je kompajliran kod VCL-a. Taj kod nema dependecyje - visi samo na WinApiju. Ti mozes odluciti hoces li dijelove VCL frameworka staticki linkati u .EXE datoteku svog programa ili hoces li ih drzati u BPL/BPI datotekama kako bi imao manju .EXE datoteku.

 

 

Ti zapravo nisi skužio što ja govorim i pitaš jel' znam da su BPL datoteke VCL? - LOL?

 

Ne znam zašto tebi nije jasan princip dinamički linkanih biblioteka. Uopće nas ne interesira što je BPL interno - to je crna kutija - Borlandova biblioteka s komponentama koje se po defaultu u C++ Builderu linkaju dinamički, dakle nisu sastavni dio tvoje aplikacije (iako mogu biti ako ti ne smeta ogroman exe).

Ako uzmeš C++ Builder i kreiraš najosnovniji Form-bazirani program s dvije T komponente, TEdit i TButton (dio StdCtrls), trebaš staviti nekoliko BPL-ova.

 

Nebitno je što BPL nije sadržajem identičan klasičnom DLL-u, on jest DLL - dinamički linkana biblioteka. (DLL je po funkcionalnosti).

 

Kada distribuiraš aplikaciju, (to ćeš vidjeti kada probaš raditi ozbiljne aplikacije) i zatrebaš nadogradnju (update), puno je lakše downloadati novi exe ili neki drugi komad od 20kb, nego novi 927678380MB exe kao što si navikao s Delphi aplikacijama. Da, možda možeš napraviti binarni patcher, ali to je strašno puno posla bez potrebe.

 

To je svrha DLL-ova i BPL-ova čak i za VCL komponente, a ne samo "moje korisničke komponente".

 

Zašto? - Zato što kod novosti ne moram distribuirati stvari koje ionako neću mijenjati, a ako upotrijebim neku noviju VCL komponentu, trebam zamijeniti samo njen BPL, odnosno BPL u kojem se ta komponenta nalazi. Kod instalacije novih aplikacija, ako su BPL-ovi globalno dostupni, nije nužno da su pristuni i u instalacijskom/distribucijskom paketu nove aplikacije.

 

Međutim, problem nastaje što nisu. VCL se ne instalira, kao Windows DLL, u globalnom pathu po defaultu (System32 npr.) i svaka aplikacija BPL-ove može imati lokalno, a ni razvijatelj VCL aplikacije ne može se osloniti na to da ih korisnik posjeduje. To u konačnici rezultira prevelikim distribucijskim paketima i nezgodnijim procesom nadograđivanja aplikacija.

 

.NET s druge strane, sam po sebi je zahtjev i unificiran je - imaš ga ili nemaš, a sve standardne komponente dostupne su u GAC-u. Nadogradnje vršiš isključivo na svojoj, manjoj aplikaciji i svojim manjim asemblajima i ne moraš brinuti za nadogradnju ili postojanje .NET komponenti.

Sve aplikacije napisane u .NET-u koriste identičan .NET te verzije koja im treba, i kao kod IIS-a npr. moguće je birati verziju CLR-a za pokretanje.

 

VCL nudi DLL hell - ne, ne prebrisuju se verzije u System32 novijim ili drugačijim, ali ima ništa manje napornu verziju svog DLL hella, dakle muke oko verzija, (ne)postojanja, distribucije, nadogradnji, dijeljenja i sl. što .NET drastično smanjuje i zbog toga je preporučljiviji za razvoj modernih aplikacija za Windowse.

Bitni algoritmi koji traže ekstremne brzine i ne rade dobro na C#-u (koji je također nativno kompajliran, pa je to rijedak slučaj) ionako se mogu napisati u C++u i koristiti kao DLL.

 

Nadam se da ti je sada jasno što je dinamički linkana biblioteka i zašto DLL ne znači isključivo "windows native DLL", već svaku dinamički linkanu biblioteku te da "DLL hell" može označavati unficirano probleme s dinamički linkanim bibliotekama; - probleme koje .NET nema skoro nikada (legacy 1.0 i 1.1 aplikacije mogu imati poneki problem, ali stare su 10 godina pa je nebitno).

Riječ dependency, koju sam upotrijebio u rečenici "VCL aplikacije imaju dependencye", znači upravo to - ovisnost aplikacije napisane korištenjem VCL-a o eksternim komponentama (dakle, izvan samog EXE-a aplikacije).

Taj dependency je nezgodniji od onog u .NET-u, iz gore navedenih razloga iako manje nezgodan od DLL-a hella koji se stvori s onim windows DLL-ovima i prebrisivanjem neodgovarajućim verzijama, jer su svi u istom System32 folderu.

Pravi znak inteligencije nije znanje, već mašta - Albert Einstein
Poruka je uređivana zadnji put sub 18.9.2010 18:30 (naxeem).
17 godina
moderator
online
RE: C++ - brza pitanja iz objektno orij. programir
naxeem kaže...
VCL nudi DLL hell - ne, ne prebrisuju se verzije u System32 novijim ili drugačijim, ali ima ništa manje napornu verziju svog DLL hella, dakle muke oko verzija, (ne)postojanja, distribucije, nadogradnji, dijeljenja i sl. što .NET drastično smanjuje i zbog toga je preporučljiviji za razvoj modernih aplikacija za Windowse.

Iz svega napisanog samo si objasnio ono sto smo vec znali - sam dependency hell koji si imao sam si si stvorio. Na to te nitko nije silio - tako si odlucio jer si mislio da ti je prakticnije. To ne mijenja cinjenicu da je VCL framework bez dependencyja - tj. VCL je dependent samo o WinApiju.

 

Ti si ovaj cijeli komentar potrosio da bi konstatirao da su C++/Delphi aplikacije koje koriste taj frameworkdependent o VCL-u (koji se moze staticki linkati u .exe datoteku ili dinamicki preko BPL datoteka). Pa helou! Ne kuzim zasto komentiras nesto sto nikad nije ni bilo upitno.

 

Ako smo se krivo razumjeli - reci. Ja sam reagirao na tvoju tvrdnju da je MFC:

 

"čišći" od VCL-a što se tiče "dependency/dll hella" (naravno, ne pošteđen, jer VCL je bio drugačiji samo zato što je tražio dodatne biblioteke).

 

Ta tvrdnja nije istinita, sto sam vise puta objasnio. Mislim da je jasno da u tom pogledu VCL nije ni "drugaciji" ni "manje cist" od MFC-a, jer ne trazi nikakve dodatne biblioteke i postedjen je dependency/dll hella (osim ako si ga sam ne stvoris - isto kao sto si ga mozes stvoriti s MFC-om, ako ces si napraviti kontrole koje ce biti zasnovane na MFC-u i koje ces koristiti preko DLL-ova ili kao ActiveX kontrole). Ni aplikacije koje koriste VCL ili MFC framework same po sebi ne traze nikakve dodatne biblioteke - traze samo ono oko cega su napravljene - framework! I MFC mozes dinamicki linkati pa ce ti aplikacija zahtijevati MFC DLL. Pa o cemu onda pricamo?

14 godina
neaktivan
offline
MS Visual c++ 2010 Express

Trebam pomoć oko snalaženja u MS VS-u...Od samih početaka radim u Dev C++-u i tek sam sad skinuo MS VS.Imam problema s kompajliranjem i pokretanjem Običnog koda "Hello World"...

optimizam je nedostatak informacija
Moj PC  
0 0 hvala 0
17 godina
moderator
online
RE: MS Visual c++ 2010 Express
Pijavica kaže...

Trebam pomoć oko snalaženja u MS VS-u...Od samih početaka radim u Dev C++-u i tek sam sad skinuo MS VS.Imam problema s kompajliranjem i pokretanjem Običnog koda "Hello World"...

Kakvih konkretno problema? Jesi za tip projekta odabrao Visual C++ > Win32 > Win32 Console Application?

17 godina
offline
C++ - brza pitanja iz objektno orij. programiranja

 

 
0 0 hvala 0
17 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir

Ne VCL sam po sebi, već VCL aplikacija je ovisna o VCL komponentama, osim ako ti odgovaraju monolitne aplikacije koje su u stvarnosti nepraktične.

Izgleda da s tobom moram biti izrazito precizan i detaljan.

MFC i dalje smatram čišćim zbog brojnih stvari (osim toga što se meni više sviđa win MFC DLL u Sys32, od BPL-ova), i iako s jedne strane može nekome biti draže ovo drugo zbog prebrisivanja i sl.

 

Ostajem pri tome da smatram MFC "čišćim" zbog DLL-ova koje dijeli s drugim aplikacijama, a koje u VCL-u moraš ručno nadgledati. VCL je lakši za korištenje, ali MFC ima drugih prednosti i zbog same činjenice da je to ipak C++ kod, a ne Delphi/Pascal. (iako je u industriji generalno MFC u nemilosti).

 

Nemam više vremena za detaljan post i umara me ovo naše prepiranje oko ničega.

Ostajem i pri tome da su moderne C++ klase poput std::vector bolje od arraya i da ih treba forsirati.

 

Na kraju se prepiremo i natežemo zato što ja nisam dovoljno precizan, a ti si cjepidlaka.

 

Imam još nekoliko ideja kada je MFC bolji, ali traže me da napišem kod, a žurim na večeru i ne stignem sada. Možda i ne napišem, jer smo otišli dosta s teme, pa nema baš smisla da prljamo ovim raspravama.

Pravi znak inteligencije nije znanje, već mašta - Albert Einstein
14 godina
neaktivan
offline
C++ - brza pitanja iz objektno orij. programiranja

Evo sad sve radi =D.Hvala na linku.

 

I napokon da više pitam jer stalno iznova zaboravljam....

 

Da koristim cin i cout ili scanf i printf (vidim da mi u MS VS-u javlja nešto u sigurnosti vezano uz njih)?

optimizam je nedostatak informacija
Moj PC  
0 0 hvala 0
17 godina
offline
RE: C++ - brza pitanja iz objektno orij. programir
Pijavica kaže...

Evo sad sve radi =D.Hvala na linku.

 

I napokon da više pitam jer stalno iznova zaboravljam....

 

Da koristim cin i cout ili scanf i printf (vidim da mi u MS VS-u javlja nešto u sigurnosti vezano uz njih)?

Slobodno koristi  sve naredbe  iz C biblioteke, doduše, on javlja da se koristi printf_s umjesto printf, ali ja uvijek koristim printf i nikad problema

Doduše, nauči C, a koristi C++

Dobar ti je primjer ono zaokruživanje broja na dvije decimale:

1. Možeš koristiti C biblioteku koja je podržana u C++ na način

#include<cstdio>

printf("%.2f", a);

 

2. Možeš kako si i napisao koristiti i IOstream biblioteku iz C++

#include<iostream>

#include<iomanip>

using namespace std;

cout<< fixed << setprecision(2) << a;

 

Treba znati oboje, a u praksi koristiti ovo drugo.

prouči malo ovo:

http://www.cplusplus.com/reference/clibrary/

 

 

p.s. tovar ti je praviNamigiva

Poruka je uređivana zadnji put sub 18.9.2010 22:22 (Floki).
17 godina
moderator
online
RE: C++ - brza pitanja iz objektno orij. programir
naxeem kaže...
Na kraju se prepiremo i natežemo zato što ja nisam dovoljno precizan, a ti si cjepidlaka.

A ne, ne, ne... Neces sad to meni natovariti - bezobrazan si. Ovaj "nesporazum" je nastao iskljucivo zbog tvog pogresnog (zavaravajuceg?) izrazavanja (pises jedno, a navodno mislis na nesto drugo), a ne zato sto bih ja bio cjepidlaka. Ja zapocnem pricu o frameworkovima, ti mi kontriras i sad odjednom ko fol nije vise rijec o frameworkovima (bez da si to icim dao do znanja), nego o aplikacijama koje koriste te frameworkove, ili zapravo o nacinu kompajliranja/linkanja frameworkova u .exe datoteku (ako si uopce bio svjestan da se MFC moze linkati i dinamicki prije nego sam to napisao; dinamicki linkan MFC + ActiveX kontrole su skoro pa ista stvar kao koristenje .BPL-ova). Ja ti ne mogu citati misli.

 

Nemoj se sad izvlaciti na moj racun. Ponovno si procitaj te prve dvije poruke i zapitaj se po kojoj logici bi ja ili netko drugi iz toga trebali misliti da ti ne govoris o frameworkovima VCL i MFC, nego o VCL i MFC aplikacijama:

naxeem kaže...
mbaksa kaže...
Vizualno programiranje je nesto sasvim drugo. Ovo o cemu govoris je programiranje aplikacije s grafickim korisnickim suceljem. Kako/kada? Ako uzmes Borland (ili kako se vec sad zove) C++Builder, mozes odmah, jer ima jednostavan i mocan VCL framework. Za Visual C++ ne mogu nista reci, jer nisam u njemu radio - ne znam jel ima kakav noviji, dobar framework (MFC u starijim verzijama Visual C++-u je smece od frameworka). Postoji i alternativa u obliku wxWindows frameworka - imas wxDev-C++ koji ti omogucuje i vizualnu izradu prozora - nisam se u to previse upustao....

VCL je fantastičan, ali i .NET je dostupan za C++ kao managed framework (i C++ ima svoju managed verziju).

MFC nije baš smeće, mislim da je nepravedno tako ga nazvati, ali je bio dosta surov, kompliciran i nepristupačan u odnosu na VCL i time mnogima odbojan, iako prilično moćan i "čišći" od VCL-a što se tiče "dependency/dll hella" (naravno, ne pošteđen, jer VCL je bio drugačiji samo zato što je tražio dodatne biblioteke).

Poruka je uređivana zadnji put ned 19.9.2010 0:14 (mbaksa).
14 godina
neaktivan
offline
C++ - brza pitanja iz objektno orij. programiranja

eto mene opet s MS VS problemom...

 

 

radim jedan zadatak u kojem trebam sortirat jednu listu stringova.

 

vector <string> v;

/upis....

sort(v.begin(),v.end());

 

I javlja se greška...Naravno u Devu sve noramlno radi...

optimizam je nedostatak informacija
Moj PC  
0 0 hvala 0
17 godina
moderator
online
RE: C++ - brza pitanja iz objektno orij. programir

Dodaj:

 

#include <string>

14 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir
mbaksa kaže...

Dodaj:

 

#include <string>

Začudo..radi =/,ja sam imao  #include<cstring>

optimizam je nedostatak informacija
15 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir
Tracer kaže...

Nema to uopće veze s prihvaćanjem kritika već tvojim namjernim provokacijama, gdje se kačiš na sitnice kako bi nekoga (zapravo, sve redom) pravio idiotom i na račun toga sebe reklamirao. A koliko čujem to uopće nije slučaj samo na ovom podforumu nego se ti svugdje i u svakoj temi smatraš najpametnijim. Zapravo, ova tvoja izjava mi je sve rekla:

 

mbaksa kaže...
Nemoj molim te pokusavati pokazivati da znas vise od mene.

 

I to je ono što je zapravo tvoj problem. Ne if naredba, ne statički i dinamički objekti i sitnice na koje se kačiš, već ego i bahatost. Pa ako je tako neka ti i bude. Ne kanim uopće u tome sudjelovati. Stoga, još danas sam zatražio crni karton pa me više neće biti na ovom forumu tako da se više ne moraš osjećati ugroženo i u obrani pljuvati po drugima (bar ne po meni).

 

A ostalima samo želim reći da mi je bilo drago dok je trajalo Namigiva. Ovo nije jedini forum na kojemu sam prisutan, a ako me trebate možete se javiti i na

 

http://programiranje.big-forum.net/ privatnom porukom.

 

Pozdrav svima Osmijeh

velika šteta! tko će svim noobovima (poput mene) rješavati c++ probleme? eh...

17 godina
neaktivan
offline
RE: C++ - brza pitanja iz objektno orij. programir
mbaksa kaže...

(pises jedno, a navodnomislis na nesto drugo), a ne zato sto bih ja bio cjepidlaka. Ja zapocnem pricu o frameworkovima, ti mi kontriras i sad odjednom ko fol nije vise rijec o frameworkovima (bez da si to icim dao do znanja), nego o aplikacijama koje koriste te frameworkove, ili zapravo o nacinu kompajliranja/linkanja frameworkova u .exe datoteku (ako si uopce bio svjestan da se MFC moze linkati i dinamicki prije nego sam to napisao; dinamicki linkan MFC + ActiveX kontrole su skoro pa ista stvar kao koristenje .BPL-ova). Ja ti ne mogu citati misli.

Dakle, po podebljanom vidim da opet imamo tvoj poznati modus operandi.

mbaksa kaže...
Nikad nisam razvijao Windows aplikacije u C++-u pa ti ne mogu konkretno reci.

Da? - Ja jesam. Stotine aplikacija.

 

Ako te zanima etika, onda ti je jasno da način na koji razgovaraš nije etičan. Pokušavaš dobiti bodove na obdukciji mojih rečenica, koje nisam banalizirao, jer sam (pogrešno) pretpostavio da znaš što su MFC, VCL za C++, DLL i sl.

Kad sam pomislio da ne znaš, uvjerio sam sebe da se vjerojatno radi o mojoj greški, jer MFC jest teži od VCL-a, jer "dependency hell" ima više značenja, jer možda nisam dugo radio s VCL-om pa sam nešto predvidio, pa sam čak instalirao Borland C++ Builder u VM da provjerim i dokažem svoje tvrdnje i kad sam uvidio da ne pričam gluposti, pokušao objasniti na što mislim (drugim načinom).

 

Ti si sve to (opet) dočekao na nož, kao da cjepidlačiš da bi imao o čemu pametovati, a vješto izbjegavajući i u predugoj raspravi i moru besmislenog teksta prikrio da u C++ temi rezerviraš polja sa stotinama tisuća elemenata u stacku i da pljuješ po MFC-u, koji osobno nikada nisi ni vidio.

 

Neću ti više ništa (sam) napisati. Kopirat ću tekst asistenta s fakulteta, kojem je C++ oko kojeg ste se sukobili, specijalnost.

Tracer kaže...

Nema to uopće veze s prihvaćanjem kritika već tvojim namjernim provokacijama, gdje se kačiš na sitnice kako bi nekoga (zapravo, sve redom) pravio idiotom i na račun toga sebe reklamirao. A koliko čujem to uopće nije slučaj samo na ovom podforumu nego se ti svugdje i u svakoj temi smatraš najpametnijim. Zapravo, ova tvoja izjava mi je sve rekla:

 

mbaksa kaže...
Nemoj molim te pokusavati pokazivati da znas vise od mene.

 

I to je ono što je zapravo tvoj problem. Ne if naredba, ne statički i dinamički objekti i sitnice na koje se kačiš, već ego i bahatost. Pa ako je tako neka ti i bude. Ne kanim uopće u tome sudjelovati. Stoga, još danas sam zatražio crni karton pa me više neće biti na ovom forumu tako da se više ne moraš osjećati ugroženo i u obrani pljuvati po drugima (bar ne po meni).

Pravi znak inteligencije nije znanje, već mašta - Albert Einstein
Poruka je uređivana zadnji put ned 19.9.2010 2:06 (naxeem).
Nova poruka
E-mail:
Lozinka:
 
vrh stranice