C++ problem

toxi

Zainteresovan član
Poruka
379
napravim novi workspace u VS 6.0. Ubacim neku kontrolu i preko Class wizarda joj dodam neku promenljivu npr klase CString i neka se zove m_sIme. E sad,kada pisem kod za neku kontrolu tog istog dialoga i ako stavim ovo m_sIme. kada napisem tacku trebalo bi da dobijem listu metoda i ostalog ali ja to u nekom workspace-u dobijem a u nekom ne.Da napomenem da ako npr unutar neke f-je kreiram objekat neke klase recimo CTime vreme; kada stavim vreme. uredno dobijem listu metoda koje su raspolozive za pomenuti objekat.U cemu je stvar?
 
To je vjerovatno pogani MFC. Odmah da ti skratim muke, zaboravi ga. Vjeruj mi to je jezik sa veoma losom sintaksom i veoma losom organizacijom, to ces tek primijetiti, ako predjes na win32api koji je odlican.
Inace da bi rijesio taj problem, potrebno je da ti je ta klasa deklarisana kao globalna, ako je zelis koristiti u svim funkcijama, il' da je predajes funkciji kao parametar.
 
Eh sukur ali ja sam na tvoj i codemakerov( stvarno,sta je sa njim?) predlog uzeo knjigu Naucite Visual Studio 6.0 za 21 dan i u njoj je sve u vezi Microsoft Foundation Classes-a ( barem na pocetku)
Koju onda knjigu da uzmem?
 
Svaki program koji napravim da bi bio pokrenut na nekom kompu zahteva da se u
win\system32 nalazi MFC42D.DLL fajl. Jel moze ovo da se nekako izbegne?Ali
da program i dalje bude "napravljen pomocu" MFC-a?
@Miljan
A taj win32api, jel to znaci "application programing inteface" ? I sta je to uopste?
Ja u VS 6.0 kad pravim new-> project u onoj listi nemam to( verovatno sam se
sad zesce ispalio ali morao sam da pitam...). Kakva je razlika izmedju njega i
MFC? Mislim jel samo neki "skup klasa" ili kako? Jel ima npr.CString i u jednom
i u drugom ili je to iz MFC klasa ? Tj. jel mi ovo sto sam naucio a u vezi je sa MFC nista nece znaciti kada budem ucio taj win32api?
 
MFC ti zahtjeva te dll fajlove, posto ne dolaze uz sam win, kako bi izbjegao upravo probleme koje si naveo, potrebno je da gore spomenute dll stavljas uz exe programa, sto ce bespotrebno da povecava velicinu programa.
Dalje win32api, da to je win32 application programming interface, samo ti ime kaze sluzi za razvijanje win32 aplikacija. MFC polako se zaboravlja i prava je ludost uciti ga. Win32 je potpuno preuzeo primat na trzistu razvijanja aplikacija za windows.
Dakle batali MFC bezveze trosis vrijeme.
Imas win32 api on je mnogo broj jedan i nalazi se u svakom MSVS. Dakle to ti je windows project, e sad ti mozes u kombinaciji sa win32 apijem da koristis MFC, al' opet dolazis na isti problem. Dakle samo cisti win32 api.
Sto se tice klasa, uzmi MSDN i prelistaj malo, vidjet ces da imas klase, funkcije iz MFC i win32(nije naznaceno nista od gore navedenog, vec samo ime klase, funkcije).
 
juznivetar:
MFC ti zahtjeva te dll fajlove, posto ne dolaze uz sam win, kako bi izbjegao upravo probleme koje si naveo, potrebno je da gore spomenute dll stavljas uz exe programa, sto ce bespotrebno da povecava velicinu programa.

bilo kakav DLL povecava velicinu programa, a to nikako nije bespotrebno, posto prog inace ne bi radio....
dalje....
tacno, MFC se zaboravlja, ali se zato uci .NET tehnologija.....
 
Obersturmfuehrer:
bilo kakav DLL povecava velicinu programa, a to nikako nije bespotrebno, posto prog inace ne bi radio....
Ne citas pazljivo. Rekao sam to, al' je fazon da se izbjegne izvoz dll-ova uz program. win32api koristi standardne windows dll tako da je dovoljan samo exe aplikacije da radi bez problema bilo koji program.
 
Bez obzira, koristio samo wni32api, moras to upakovati u neki programski jezik. Ja na primer koristim win32api uz na primer xHArbour (32 bitna i znatno unapredjena verzija starog Clipper programa) takodje, ali ipak je to kompajler.
Tako da ne mozes napraviti program SAMO koristeci win32api pisuci njihove piozive u nekom editoru, u nesto se to ipak "upakuje" a onda na primer MSC ume da povuce gomilu nepotrebnih DLL itd, itd...

Sa druge strane, koriscenje cistih i direktnih poziva win32api, mnogo puta i nije bas jednostavno zboyh vrste i broja parametara, sto pocetnicima nije lako da nadju i pravilno upotrebe. A programski jezici umeju "ispod haube da te API funkcije koriste za odradjivanje nekog posla. Zasto bi se na primer neko zezao sa koriscenjem API za iscrtavanje dialoga ako u programskom jeziku postoji "wraper" koji to lakse za korisnika odradi?
Ja API koristim direktno samo kada je zaista neophodno
 
Borise pa sta da koristim? Ti si mi preporucio onu knjigu rece da je tvoj sin(cini mi se) cita jer su je na fakultu "predlozili",a sada vecina ocrnjuje MFC...Ljudi znam da se svi trudite da pomognete ali me dovodite u tesku situaciju...
"Programming Windows by Petzold" tu knjigu sam trazio u dve radnje ( preko neta,naravno) i nemaju je. Predlozi neku drugu knjigu....
I da,spomenuo je neko da moze onaj dll fajl da se ukljuci u exe fajl. Kako?
 
Nisam nesto siguran da se diskusija razvija u pravom pravcu.
Win API ne mozes koristiti nezavsno od nekog programskog jezika, ma sta to bilo, tako da moram prvo videti sta drugari misle kad pominju API kao samostalno resenje. Kako god okrenes, razvoj aplikacija za Windows okruzenje se ionako bazira na Win API funkcijama, koji god jesik upotrebljavao, pre ili kasnije API funkcija odradi krajnji deo posla,
Moj savet ti je da za sada ne brines o velicini aplikacija ili DLL koje ce tvoj program povuzi za sobom pri instalaciji na korisnikovom kompjuteru. Primarno je da shvatis logiku prgramiranja u C++ i jos vazinije, da shvatis OOP, bez razumevanja OOP, ma koji jezik da izaberes, imaces problem, neresiv problem.
Kad jednom savladas C++, lako ces baratati ostalim stvarima, optimizovati, prelaziti sa jednog na drugi itd...
Videcemo sta ostali drugari savetuju a cemo vec naci resenje. Vise ljudi, vise zna :)
 
Samo nebih da ucim nesto sto mi posle nece nista znaciti....
I nista vas ne razumem... Da li i u APIu i u MFCu postoji npr CString klasa? Ili je veliki broj metoda koje "rade" u MFCu nedostupan u APIu i obratno....??? A sto se tice OOPa tu je valjda najbitnije to sto se "sve radi preko klasa" a ne uz pomoc struktura.....???? Ah codemaker is posting again! :-)
 
:)
OOP znaci "Object Oriented Programming", dakle radi se o klasama i objektima i svemu sto uz to ide.
Strukture su nesto drugo i samo izgledaju na prvi pogled kao nesto slicno ali nije ni izdaleka.

Sto se API funkcija tice, postoje na primer jezici koji koriste neke vrste "wrapper" pa olaksavaju poziv API funkcije tako sto nude programerima da pisu jednostavnije komande a u sustini sve se finalno svede na poziv API funkcije (kao sto je na primer kopiranje fajlova, pronalazenje naziva putanja na disku, i milion raznih drugih akcija)

Yebiga, tematika nije tako jednostvna da bi se u par reci prepricala, treba tu dosta ucenja i drugog znanja, Negde sam jednom video neki zgodan program na internetu koji opisuje skoro sve API funkcije sa opisom i parametrima, cak sam imao na disku ali eto, negde se zagubi, ali verujem da se jos moze naci ako je neko uporan.
 
Ma sto se tice ucenja ma ja to hocu ali neznam sta ali evo opi m je bas konkretno rekao da uzmem knjigu nekog Lasla Krausa i neku za .NET . Znam da je komplikovano :-) Zato mi se i dopada sve to!
Hvala,mislim da sam shvatio sta si hteo da kazes u vezi APIa...

E da,jos jedno pitanje, na netu sam bio postavio nesto sto sam napravio preko MFCa i kad neko oce to da skine avast kaze da ima virus "jepoo"(cini mi se)....pa neshvatam kako to( kad ja to skinem sa neta nikakvog virusa nema)...
 
Imao sam problema sa internetom u prethodna 2 dana, mada i sada nije mnogo bolja situacija jer surfujem sa nekih 16Kbit/sec, al' reko da se javim
"Programming Windows by Charles Petzold" tesko da ces pronaci u nasim knjizarama, vec potrazi na internetu elektronski oblik knjige.
Licno ti nebih preporucio odmah .NET platformu, jer je mnogo uproscena stvar i neces mnoge bitne stvari iz samog funkcionisanja sistema nauciti.
Neznas sta da ucis ? Uzmi onu gore knjigu, instaliraj sebi MSVS NET2003 il' 2005, nabavi MSDN, i polako pocni da citas i da radis uz knjigu (naravno prije ovoga ti treba solidno znanje nekog od jezika tipa c il' jos bolje c++).
Odoh sad da reinstaliram sistem nebi li se ova jadnda brzina popravila.
poz.
 
Dalje win32api, da to je win32 application programming interface, samo ti ime kaze sluzi za razvijanje win32 aplikacija. MFC polako se zaboravlja i prava je ludost uciti ga. Win32 je potpuno preuzeo primat na trzistu razvijanja aplikacija za windows.
Dakle batali MFC bezveze trosis vrijeme.

Kad vec ovako "autoritativno" savetujesh nekog probaj sledeci put da ne meshash pojmove.
Odakle ti uopshte ideja da izlupetash ovako neshto? Kakav crni WinAPI, gde si ti to video aplikaciju, bilo kog obima, na Windows-u koja koristi chisti Win32API za <kompletan GUI>?
Win32API niko ne koristi na tom nivou, niti ce ga koristiti ako zna da ceni svoje vreme. WinAPI je mnogo vishe od crtanja prozora i dugmadi, i za te sistemske stvari je normalno da se koristi, ali da poredish MFC i WinAPI je smeshno, ali zabavno. GUI se NIKADA ne pravi na tako niskom nivou! Shta cesh da radish kad dodje Vista i tvoj "API" odjednom postane obsolete? Prepisacesh ga od nule?

Licno ti nebih preporucio odmah .NET platformu, jer je mnogo uproscena stvar i neces mnoge bitne stvari iz samog funkcionisanja sistema nauciti.

Uradi upravo kontra od ovoga - uchi .NET ako si vec na Windows platformi. To je buducnost Windowsa, WinAPI je gubljenje vremena, nema ama bash nikakvog valjanog razloga da sebi chupash kosu pokushavajuci da shvatish shta je DC, shta je MessagePump i josh gomila stvari koja ti u 99% sluchajeva nece nikada trebati.

Vec sam pomenuo jednom da savete, kao ovaj gore, sa ovog foruma ljudi treba da shvataju sa velikom dozom rezerve.
 
Lord British:
Kakav crni WinAPI, gde si ti to video aplikaciju, bilo kog obima, na Windows-u koja koristi chisti Win32API za <kompletan GUI>?
Tu se slazem, cisti Win32API bi bilo suludo koristiti od strane programera, zbog toga i postoje jezici koji "upakuju" pozive API funkcija u lakse razumljive komande ili funkcije.

Lord British:
Win32API niko ne koristi na tom nivou, niti ce ga koristiti ako zna da ceni svoje vreme. WinAPI je mnogo vishe od crtanja prozora i dugmadi, i za te sistemske stvari je normalno da se koristi, ali da poredish MFC i WinAPI je smeshno, ali zabavno. GUI se NIKADA ne pravi na tako niskom nivou! Shta cesh da radish kad dodje Vista i tvoj "API" odjednom postane obsolete? Prepisacesh ga od nule?
E sad sto se tice pisanja od nule, naravno da ce ga pisati ako je koristio cisti API da bi nesto napisao od programa. Srecom te i "Vista" ili sta god to sledece bilo, mora imati svoj nekakav API, pa ce biti nesto lakse za implementaciju naredne generacije programskih jezika.

Slazem se sa svim sto si napisao, mislim samo da si zapravo reagovao na malo zbrkane uoptrebe pojmova i namena MFC, API u odnosu na programe, GUI itd, itd...
Zbog toga i mislim da je Petzhold neprevazidjen za citanje....

Osim toga, "savremeni" (za nas old-timere) jezici zapravo i nisu za startovati tek onako, uzmes knjigu pa pratis uputstva ili slicice ekrana. Savremen pristup programiranju ce sve vise traziti uslovno govoreci "multidisciplinarni" pristuo, kad govorimo o arhitekturi OS, OOP, API, logici povezivanja svega toga i jos mnogo drugih, naizled "nepotrebnih" stvarcica. A ako se sve to, ili deo, preskoci, dolazice do problema sa razumevanjem problematike a time naravno i u samom programiranju.
Sve mi se cini da svaki naredni OS ima tendenciju da pokusa da bude sto jednostavniji za samog krajnjeg korisnika a ustvari sve vise postaje kompleksna zayebancija za nas programere koji treba da programiranjem za taj OS zaradimo za Ferrari i kuce sa bazenima :)
 
Lord British:
Win32API niko ne koristi na tom nivou, niti ce ga koristiti ako zna da ceni svoje vreme.
Kao prvo smanji dozivljaj, znam sta pricam, a znam i sta ti pricas. Vidi win32 jeste slozen i nije u najboljim odnosima sa vremenom, al' ti ako shvatis win32 za tebe bilo koji drugi GUI api je maciji kasalj.
Neznam samo zasto svi teze nekom "lakom ucenju", slazem se treba sebi olaksati i treba koristiti uproscenije funkcije, ALI samo nakon shvatanja pozadinskih operacija i desavanja.
Bas kao i VB "programeri" sve oni znaju odraditi neke aplikacije sablonski, al' oni su sto se tice citavom programerskog skila neuporedivi sa jednim win32 programerom, koji svakom problemu prilazi sa razumjevanjem "sta koci", "gdje koci" i "kako da se rijesi toga", dok VB programer nema pojma ni za jedno od gore pomenutih stvari.

Lord British:
Uradi upravo kontra od ovoga - uchi .NET ako si vec na Windows platformi. To je buducnost Windowsa, WinAPI je gubljenje vremena, nema ama bash nikakvog valjanog razloga da sebi chupash kosu pokushavajuci da shvatish shta je DC, shta je MessagePump i josh gomila stvari koja ti u 99% sluchajeva nece nikada trebati.
.
Slobodno uci ovako, al' dok se ne uhvatis win32 api-ja neces ni shvatiti mnoge stvari, a i nece s nikada biti u rangu jednog programera koji ga poznaje.
 
Jok, brate, treba nauciti sto vise strucnih termina i dozirano ih upotrebljavati pred sefom tokom redovnog svakodnevnog uvlacenja u bulju, uvezbati organizacione sposobnosti( naturanje novih timesheetova programerima), organizovati testiranje software-a ( naturanje programerima obaveze da potpisu da je sve istestirano), organizovati vodjenje dokumentacije ( programer mora po uradjenom tasku napisati specifikaciju i dokumentaciju za isti)... ocu da kazem: zavrsi etf i nauci programiranje i uvek ces biti sljaker, ali nauci access i nesto business logike i uvlaci se sefu i za dve godine ces postati sef istim tim sljakerima.
 
Garwor:
Jok, brate, treba nauciti sto vise strucnih termina i dozirano ih upotrebljavati pred sefom tokom redovnog svakodnevnog uvlacenja u bulju, uvezbati organizacione sposobnosti( naturanje novih timesheetova programerima), organizovati testiranje software-a ( naturanje programerima obaveze da potpisu da je sve istestirano), organizovati vodjenje dokumentacije ( programer mora po uradjenom tasku napisati specifikaciju i dokumentaciju za isti)... ocu da kazem: zavrsi etf i nauci programiranje i uvek ces biti sljaker, ali nauci access i nesto business logike i uvlaci se sefu i za dve godine ces postati sef istim tim sljakerima.
Ako nije tajna u kojoj to relativno normalnoj firmi prolazi?
 
sto da ne, narocito ako se skrene paznja na ono 'poslovna logika' + opste obrazovanje sto se tice programiranja i poznavanje o sistema na kome se radi i zavrsava odredjeni projekat - eto tebi jednog Project Managera...
 
ma project manager je mala maca, to skoro svako moze :D treba ici odmah na capability managera.
ne znate sta je to? u tome i jeste fora, to ni on sam ne zna! otprilike koordinator projekata ( realno, mail-forwarder ), slast je u tome sto svaka tri dana mozes zahtevati svu dokumentaciju o izmenama softwarea od pocetka projekta, ali svaki put u razlicitom formatu, naravno.
 

Back
Top