PCPROG.5

05 Jan 1995 - 02 Oct 1995

Topics

  1. algoritmi (106)
  2. comment (2)
  3. ms.dos (27)
  4. windows (332)
  5. asembler (203)
  6. basic (228)
  7. jezici (126)
  8. pascal (1085)
  9. cccc (546)
  10. cpp (117)
  11. clipper (1048)
  12. baze.podataka (194)
  13. fox (231)
  14. cavo (192)
  15. razno (593)

Messages - cpp

cpp.2 sikima,
Potrebna knjiga C++ od Lipmana. Moguc svaki dogovor.
cpp.3 nradeta,
Zna li neko kako da napravim sopstvene korisnicke tastere pomocu BWCC.DLL? Pod sopstvenim tasterima podrazumevam, naravno, tastere koji prikazuju bitmapu koju ja hocu. Bilo bi lepo kad bi neko opisao kompletan postupak...
cpp.4 jkpbvk,
Dali postoji mogucnost linkovanja EGAVGA.BGI drajvera u exe fajl ili bilo sta drugo samo da ga netrazi ako nije u direktorijumu u kome se startuje fajl ? Cuo sam da Novell link radi posao ali nemam ga.
cpp.5 omega,
Ţ Dali postoji mogucnost linkovanja EGAVGA.BGI drajvera u exe fajl ili bilo BGIOBJ.
cpp.6 maksa,
>> Dali postoji mogucnost linkovanja EGAVGA.BGI drajvera u exe >> fajl ili bilo sta drugo samo da ga netrazi ako nije u >> direktorijumu u kome se startuje fajl ? 1) U tvom programu moraš da registruješ drajvere (i eventualne fontove, ako ne želiš da vucaraš i *.CHR po direktorijumima) koje koristiš: int driver, mode; registerbgidriver(EGAVGA_driver); registerbgifont(small_font); // na pr., za small_font driver = VGA; mode = VGAHI; initgraph(&driver, &mode, ""); 2) Potrebne BGI (i CHR) fajlove konvertuješ u OBJ-ove. bgiobj egavga bgiobj litt.chr (bgiobj.exe se nalazi u BGI dir-u) 3) Ulinkuješ konvertovane bgi-ove i chr-ove u svoj. prorgam, odnosno uključiš ih u odgovarajući prj.
cpp.7 galimpic,
Moj ortak, apsolvent ETF-a treba da napiše C program u okviru nekog predmeta, ali ga nešto zeza, pa me zvao da mu pomognem. Rekao sam mu da koncizno defini- še pitanje i da mi da pošaljem ovde. BTW, ne znam zašto koristi C++ a ne C. Inače, kod njega (osim valjda ovog dole) progam radi ali ne i na ETF-ovom XT-u. Bio bi vrlo zahvalan ako bi neko brzo odgovorio, a i ja. Thanks. Evo njegovog priloga: /* Ovaj jednostavni primer mi zadaje probleme i ne znam kako da ga resim. Pri pokusaju da podesim sistemski casovnik i na ovaj nacin unesem potrebne podatke desava se sledece: - vreme.ti_hour se ucita korektno - pri unosu vreme.ti_min ono se unese korektno, ali istovremeno vreme.ti_hour postane jednako 0 - vreme.ti_sec se ucita korektno - na taj nacin pri postavljanju vremena uvek dobijem 0 casova, a uz to pri iscitavanju vremena se ispostavi i da je broj sekundi za jedan manji od unetog Kako da korektno unesem i promenim vreme u sistemu? Pokusavao sam i sa drugim formatima unosa umesto %d ali nije nista vredelo. Racunar na kome je ovo napisano je 386SX, a kompajler BORLAND C++ 2.0 Jos jedno pitanje, ciji bi mi odgovor puno znacio, glasi: sta treba da uradim i o cemu moram da vodim racuna da bi program napisan pomocu gore spomenute konfiguracije radio na XT racunaru? Unapred zahvalan srdacno pozdravljam sve one koji budu pokusali da mi pomognu */ #include <stdio.h> #include <dos.h> struct time vreme; main() š printf("casova: "); scanf("%d",&vreme.ti_hour); printf("minuta: "); scanf("%d",&vreme.ti_min); printf("sekundi: "); scanf("%d",&vreme.ti_sec); settime(&vreme); gettime(&vreme); printf("Vreme je %2d:%02d:%02d",vreme.ti_hour,vreme.ti_min,vreme.ti_sec); ć
cpp.8 vlador,
> Dali postoji mogucnost linkovanja EGAVGA.BGI drajvera u exe fajl ili bilo Pogledaj BINOBJ. Napraviš preko njega EGAVGA.OBJ pa ga ulinkuješ u EXE. Imaš u UTILS.DOC primer. P.S. Nego, još mi nisi odgovorio zašto sam (fenomenalno) glup? :) --- ■ VLADOR ■ Kroz moj zivot prolaze mnoge budale. Samo ja ostajem.
cpp.9 janko,
> /* Ovaj jednostavni primer mi zadaje probleme i ne znam > kako da ga resim. Pri pokusaju da podesim sistemski > casovnik i na ovaj nacin unesem potrebne podatke desava se > sledece: - vreme.ti_hour se ucita korektno > - pri unosu vreme.ti_min ono se unese korektno, ali > istovremeno vreme.ti_hour postane jednako 0 > Kako da korektno unesem i promenim vreme u sistemu? > Pokusavao sam i sa > struct time vreme; > scanf("%d",&vreme.ti_hour); > printf("minuta: "); > scanf("%d",&vreme.ti_min); > printf("sekundi: "); > scanf("%d",&vreme.ti_sec); Ovde se pojavljuju dva problema. Prvi problem proističe iz tvog očiglednog nerazumevanja načina rada C-a (ovo je suv C a ne C++ kod, usput). Funkcija scanf očekuje ADRESU od int u memoriji, kada dobije "%d". U strukturi time elementi nisu int, već manji. Pri unosu ti_min, scanf će zviznuti int u strukturu i uništiti pre toga ispravno uneti ti_hour, koji se slučajno :) nalazi iza ti_min. Rešenje je, normalno, ne unositi nijedan broj pomoću scanf ravno u strukturu, već prvo u promenljivu tipa int. Gornji kod je "traženje nevolje". Što se tiče XT-a, i XT ima sistemsko vreme, sa tom razlikom što najstariji modeli nemaju nezavisni sat, već po isključenju "zaboravljaju" vreme. Ispravan program radi ispravno i na XT-u. Drugi problem je daleko zanimljiviji... Ono što me je stvarno začudilo je tvoje pominjanje "izgubljene sekunde." Zašto bi se gubila jedna sekunda? Prvo nisam verovao. No, onda sam rešio da proverim: Tu su kritični pozivi settime i gettime. I jedan i drugi se ravno remapiraju u pozive MS-DOS-a, pa nema baga kod Borlanda. Ali, MS-DOS pri svakom pozivu settime / gettime funkcija ukrade 5 ili 6 stotinki. Evo i primera: Settime: 15.22.30.50 Gettime: 15.22.30.45 Settime: 15.22.32.42 Gettime: 15.22.32.37 Settime: 15.22.33.30 Gettime: 15.22.33.25 Dakle, ovo je ponašanje *MS-DOS-a.* Zašto to radi? (ovo nisam nigde pročitao, reč je o čistoj dedukciji -- ako neko ima vremena, neka disasemblira odgovarajući deo MS-DOS-a da vidi da li sam u pravu): reč u kojoj MS-DOS pamti sistemsko vreme se povećava svakih 55 milisekundi (tj. 5.5 stotinki). Izgleda da su programeri MS-DOS-a, pišući MS-DOS još davno, za mnogo sporije računare, (primetite da najveći deo koda MS-DOS NIJE ISPRAVLJAN bar deset godina!) konstatovali da im se sistem "logičnije" ponaša ukoliko pri SETTIME pozivu reč koju treba da ubace, prvo smanje za jedan. Po pravilu bi u to vreme odmah potom usledio interapt koji bi bacio vreme na zahtevano. No na bržim (tj. svim današnjim) mašinama njihovo *namerno* kašnjenje se vidi. :( Interapt ne može da stigne da se dogodi. Ovde još treba primetiti da DOS i hardver na koji se ove DOS funkcije oslanjaju i ne treba koristiti za precizno merenje vremena. Pre svega, informacija o "0-99" stotinki je lažna, jer je takav sat tačan u +- 5.5 stotinki. O ostalim aspektima netačnosti ovakvih merenja može se još pisati, ali to je druga tema... Ti dobijaš jednu sekundu manje zato što ti u strukturi, pošto je statički alocirana, ili, onim slučajnim upisivanjem veće veličine, svejedno, ostaje 0 na mestu stotinki. 6 stotinki manje je već prethodna sekunda.
cpp.10 jkpbvk,
>< 1) U tvom programu moras da registrujes drajvere (i eventualne >< fontove, ako ne zelis da vucaras i *.CHR po direktorijumima) >< koje koristis: >< >< int driver, mode; >< registerbgidriver(EGAVGA_driver); >< registerbgifont(small_font); // na pr., za small_font >< driver = VGA; >< mode = VGAHI; >< initgraph(&driver, &mode, ""); Ovo se zove odgovor ! OK, radi ,samo kako ubaciti druge fontove ? Verovatno treba menjati graphics.h ?? Thanx anyway.
cpp.11 jkpbvk,
<> P.S. Nego, jos mi nisi odgovorio zasto sam (fenomenalno) glup :) Pa ti jos uvek nisi provalio zbog cega ? Ma nema veze, nego to sa BINOBJ sam znao i pre nego sto sam pitao nego je problem bio u registerbgidriver(EGAVGA_driver); ta linija je trebala da se doda, inace probaj bez te linije i videces da nece raditi.
cpp.12 evlad,
>> Inače, kod njega (osim valjda ovog dole) progam radi ali ne i na >> ETF-ovom XT-u. Bio bi vrlo zahvalan ako bi neko brzo odgovorio, a i ja. >> Thanks. 1. XT nema cmos 2. postoji multi IO kartica sa baterijom (za XT), ali tada treba pozvati neko programče, da sa tog clocka saopšti tačno vreme ms-dos-u ... (obično stoji u autoexec.bat ...)
cpp.13 maksa,
>> OK, radi ,samo kako ubaciti druge fontove ? >> Verovatno treba menjati graphics.h ?? Registruješ sve fontove koji ti trebaju, bgiobj-uješ ih, i ulinkuješ. (graphics.h ne dirati)
cpp.14 vlador,
> Pa ti jos uvek nisi provalio zbog cega ? Da ti pravko kažem, nisam se ni trudio, niti imam nameru. ;) Na jednu moju bezazlenu upadicu (koja je imala sve predispozicije da se ne shvati ozbiljno, pogotovo kad se pogleda smajli) ti me ovako počasti... No, dobro. Kako ti kažeš: nema veze. > ta linija je trebala da se doda, inace probaj bez te linije i videces da > nece raditi. Pa ja sam ti lepo rekao da za detalje pogledaš UTILS.DOC. :) --- ■ VLADOR ■ Takvu retkost odavno nisam video, a onda pustih vodu.
cpp.15 jkpbvk,
[]| Registrujes sve fontove koji ti trebaju, bgiobj-ujes ih, i []| ulinkujes. (graphics.h ne dirati) Mislio sam na fontove koji se ne dobijaju uz C, dakle neke druge za koje njihova imena nisu upisana u graphics.h. Inace, jel' ima neko bgi driver koji podrzava rad u 256 boja ? Imam neko programce koje prikazuje gifove preko bgi drajvera ali samo slike sa 16 boja a za vece kaze da nabavim driver koji podrzava 256 boja.
cpp.16 maksa,
>> Mislio sam na fontove koji se ne dobijaju uz C, dakle neke >> druge za koje njihova imena nisu upisana u graphics.h. Napravi neki "ext_drv.h" koji bi imao u sebi: void _Cdecl bold_font(void); // za bold extern int far _Cdecl bold_font_far[]; // font ... za svaki font (ime pokupiš iz onoga što ti kaže bgiobj kad konvertuješ CHR). Za ovo niš' ne garantujem. >> Inace, jel' ima neko bgi driver koji podrzava rad u 256 boja ? Probao SVGABGI iz dir-a ?
cpp.17 bigbrada,
*>> Dali postoji mogucnost linkovanja EGAVGA.BGI drajvera u exe *>> fajl ili bilo sta Ne znam za C++, ali u Pascalu se to radi 'vako: 1. Uzmeš 'BINOBJ.EXE' i napraviš .OBJ file od 'EGAVGA.BGI' na sledeći način : BINOBJ EGAVGA.BGI EGAVGA.OBJ EgaVgaProc 2. Na početku programa ubaciš liniju : (* $L EGAVGA.OBJ *) 3. Zatim u deo sa opisom procedura : Procedure EgaVgaProc; External; 4. I najzad inicijalizuješ grafiku na sledeći način : Procedure InitVGA; var GrDriv, GrMode : Integer; begin If RegisterBGIDriver (čEgaVgaProc) < 0 then begin Writeln ('Neka greska!?'); Halt(1); end; GrDriv := VHA; GrMode := VGAHi; InitGraph(GrDriv, GrMode, ''); end; I to je to. Nadam se da sam makar malo pomogao :) The.Great
cpp.18 vitez.koja,
#=> []| Registrujes sve fontove koji ti trebaju, bgiobj-ujes #=> ih, i []| ulinkujes. (graphics.h ne dirati) #=> Mislio sam na fontove koji se ne dobijaju uz C, dakle #=> neke druge za koje njihova imena nisu upisana u #=> graphics.h. Baš kao što maksa kaže, "spoljašnji" postupak je isti kao i sa ugrađenim (?) fontovima: bgiobj, pa link sa ostatkom programa. Nikakva imena fontova nisu upisana u graphics.h; GOTHIC_FONT, ili kako beše, je samo #define zamena za broj. U funkciji settextstyle ne moraš da navodiš ova deskriptivna i za kucanje zamorna imena, nego samo broj (handle) fonta - videćeš da je npr. 0 za default, 1 za sans-serif, 2 za triplex (ili tako nekako). Prema tome, sve što ti treba da bi koristio neki drugi font je njegov handle. Funkcija registerbgifont vraća int vrednost, koja zapravo predstavlja handle fonta; kod 4 "ugrađena" fonta ta vrednost može da se zanemari, jer je unapred znaš, ali kod ostalih fontova moraš i taj podatak negde da zapamtiš, npr. yutimes_font=registerbgifont(yutimes); i tako ti yutimes_font postaje ravnopravan sa ostalima...
cpp.19 jkpbvk,
||| Probao SVGABGI iz dir-a ? Bih da sam ga imao ali ga nema uz BC++ 3.1, dakle ako ga posedujes posalji ga.
cpp.20 maksa,
>> Bih da sam ga imao ali ga nema uz BC++ 3.1, >> dakle ako ga posedujes posalji ga. Sezam, DRIVERS dir, SVGABG50.ZIP.
cpp.21 jlazor,
Help : bilo kakav prirucnik za koriscenje BC++ 4.0 (srpsk(srpski) . H Hvala .....
cpp.22 maksa,
Pošto se ova (a lejtli ni ostale) teme ne prenose na BeoNet, umoljen sam da prosledim pitanje: Instalirajuci BC++ 4.02 pratio sam znakove pored puta ;)... Na jednoj tabli, negde oko kraja instalacije, primetio sam reklamu za neki 'Borland visual solutions pack' ili vec nesto slicno. Recena reklama je obecavala hrpu .vbx komandi za rad sa bazama podataka, kao i razvojni sistem za pisanje helpa. Pitanje: je li neko video kako to sve radi u praksi?
cpp.23 wizard,
Watcom-om linker mi prijavljuje grešku za jedan modul. Ovo piše za tu grešku u dokumentaciji: MSG 1124 lazy reference for %S has different default resolutions A lazy external reference is one which has two resolutions: a preferred one and a default one which is used if the preferred one is not found. In this case, the linker has found two lazy references that have the same preferred resolution but different default resolutions. Jel može neko na srpskom da mi objasni šta je "lenja" referenca i kakve veze ima ako je "the linker has found two lazy references that have the same preferred resolution but different default resolutions"...? (I kako da je se otarasim, naravno :)
cpp.25 mkaralic,
Zdravo! Desio mi se jedan problem sa Borlandovim C++ 3.1, te bih bio srećan ako neko zna rešenje. Pod Windowsom sam napisao sitan program koji ima okvir za dijalog. U konstruktoru okvira sam napravio nov objekat ComboBox i to otprilike ovako: new TComboBox(this, IDD_CB_, MAXPATH); Program se lepo iskompajlira i linkuje, ali kada pozovem okvir za dijalog, pojavi se: Application Error WINDEV caused a General Protection Fault in module WINDEV.EXE at 0018:05D0 Pomagajte ako znate! Kako da stvorim ovaj objekat? (imam u istom dijalogu mnogo drugih i svi rade) // mik
cpp.26 zdobric,
Nedavno sam naišao na Internet adresu za prijavu za Borlandov electronic newsleter. Ne sumnjam da i Microsoft sa svojom orjentacijom ka komunikacijama ima nešto slično. Pretpostavljam da ovde, a i u drugim konferencijama, ima dosta interesenata za ovo. Međutim treba da poštujemo preporuku administratora domaćeg Interneta o mailing listama. Pošto je ova od, pretpostavljam, šireg interesa mislim da je opravdano prijaviti se - uz dogovor da postoji samo jedan primalac, i naravno, uz kasniju lokalnu distribuciju. Najbolji način da se ovo organizuje bi bio kada bi Sezam to preuzeo na sebe i otvorio neki dir ili temu u konferenciji. Ovo bi ojačalo informativnu komponentu Sezama (svaka čast za microbutes!), a Microsoft i Borland su ionako više institucije nego komercijalne firme. Dakle javite se ako ste zainteresovani, pa da pitamo Dejana šta misli. Evo raznih adresa za Borland. 1. Ima zakupljene konferencije na CompuServe-u, BIX-u i GEnie-u. 4. Borland DL BBS. Dial (408) 431-5096 (up to 9600 baud, 8-N-1) for a host of free technical documents and example programs. 6. Technical information on Borland C++ is available on the Internet via anonymous ftp at our ftp site ftp.borland.com. 7. Subscribe to Borland's free electronic newsleter and get a regular update on the hottest programming tips and tricks. Send your full name and address via electronic mail to tech-infočborland.com. Za Microsoft se nešto slično valjda može naći u bilo kom novom Microsoft -ovom paketu. Takođe microbutes su puni Internet adresa za razne specifične Microsoft usluge. Iz dve-tri iteracije bi se mogla dobiti i adresa za electronic newsleter.
cpp.27 vcalic,
>> Dakle javite se ako ste zainteresovani, pa da pitamo Dejana šta misli. Zainteresovani smo :) Vlada
cpp.28 maksa,
>> Dakle javite se ako ste zainteresovani, pa da pitamo Dejana >> šta misli. Javljamo se. :)
cpp.29 pedjak,
> Dakle javite se ako ste zainteresovani, pa da pitamo Dejana šta > misli. Još jedan :)
cpp.30 omega,
Ţ Dakle javite se ako ste zainteresovani, pa da pitamo Dejana sta misli. Javljam se i ja :)
cpp.31 dejanr,
>> Dakle javite se ako ste zainteresovani, pa da pitamo Dejana sta misli. Dejan misli da je ideja dobra, i kada dođe sa puta, vrlo rado će videti šta može da se učini. Microsoftove email biltene već mi redovno šalje kolega Kehler iz Amerike.
cpp.33 dejaan,
Kako se, u Borland C++ 3.1, pise help za OWL aplikacije, tacnije *.hpj fajlovi?
cpp.34 vcalic,
>> Kako se, u Borland C++ 3.1, pise help za OWL aplikacije, tacnije *.hpj >> fajlovi? HPJ je Help Project i on služi samo da da reference i naredbe Help Compiler-u. Source Help-a se piše u RTF formatu, pomoću tekst procesora. Imaš ovde po direktorijumima arhivu sa makroima za Winword i sa par pomoćnih programčića. Vlada
cpp.35 djelovic,
> Kako se, u Borland C++ 3.1, pise help za OWL aplikacije, tacnije *.hpj > fajlovi? Da skratim priču, najbolja alatka za pisanje helpa je Windows Help Author, koga imaš ovde na Sezamu. Pokupi ga, pročitaj dokumentaciju, i sve će ti biti jasno. Ovo "najbolji" treba, naravno, uzeti sa dozom rezerve. Najbolji je, navodno, RoboHelp, ali on nije PD/SW.
cpp.37 dejaan,
Hvala na pomoci. Ipak nisam uspeo da nadjem Help Author, pa bih zamolio za ime fjla i dirktorijuma u kojem se on nalazi. Imam jos jedno pitanje. Koja je uloga sledecih komandi u *.h fajlovima? #pragma option -Vo. #if defined(__BCOPT_) && !defined(_ALLOW_po) #pragma option -po.
cpp.38 bulaja,
│Hvala na pomoci. Ipak nisam uspeo da nadjem Help Author, pa bih │zamolio za ime fajla i dirktorijuma u kojem se on nalazi. └─── WINDOWS - W:\PROGRAM ---------------------- whas20 a01 399598 Microsoft Help Authoring System za WinWord 2.0 #1 whas20 a02 399567 Microsoft Help Authoring System za WinWord 2.0 #2 whas20 a03 399567 Microsoft Help Authoring System za WinWord 2.0 #3 whas20 a04 152424 Microsoft Help Authoring System za WinWord 2.0 #4 what60 zip 567880 Microsoft Help Authoring Toolkit za WinWord 6.0 5 file(s) 1874 kb
cpp.39 dejaan,
Kada se menja neki *.h fajl u INCLUDE poddir. ili neka implementacija Hnekog od *.h fajlova u SOURCE pddir. kako ih kompajlirati da bi aplikacija koja ih koristi prihvatila izmene?
cpp.40 aleck,
Imam BC++ 3.1.Kada startujem onaj debuger i vratim se nazad iz njega windowsi totalno pobrljave:miš postane kvadrat koji treperi,a boje totalno pomodre(valjda od muke:).U čemu je problem?
cpp.41 vcalic,
>> Imam BC++ 3.1.Kada startujem onaj debuger i vratim se nazad iz njega >> windowsi totalno pobrljave:miš postane kvadrat koji treperi,a boje totalno >> pomodre(valjda >> od muke:).U čemu je problem? U drajveru za Turbo Debugger :) Ne pitaj me kako da rešiš problem, ja imam Hercules ;) Vlada
cpp.42 bceklic,
> Imam BC++ 3.1.Kada startujem onaj debuger i vratim se nazad iz > njega windowsi totalno pobrljave:mis postane kvadrat koji > treperi,a boje totalno pomodre(valjda > od muke:).U cemu je problem? U uputstvu pise da je verzija za Win 3.0. Mozda je u tome problem..
cpp.43 aleck,
>> U uputstvu pise da je verzija za Win 3.0. Mozda je u tome problem.. E mašala.Pa kako ste vi ljudi radili sa tim?
cpp.44 dejaan,
Kako, konkretno kod BORLAND C++ 3.1, aplikacije koriste razne *.cpp fajlove iz SOURCE, a njihovi *.obj fajlovi se nigde ne pojavljuju. Takodje, zasto se izmene u tim fajlovima ne primecuju u aplikacijama koje ih koriste.
cpp.45 cinkler,
Molim za malu pomoc... Pre nekog vremena sam dobio program u izvornom kodu za Borland C++, ali ne znam za koju tacno verziju. Program radi u cistom DOS-u,cak i bez overlay-a. Projekt fajlovi imaju ekstenziju .prj, i u zagla- vlju im pise "Turbo C Project File". Ako neko zna nesto o ovome, molio bih ga da mi uputi mail... :). Svaka pomoc je dobrodosla. Boris
cpp.47 sikima,
Naleteh na jednu nepoznanicu u vezi C++ jezika, a to je REFERENCE, tj. &. Procitao sam da je to slicno pointerima a ipak razlicito na svoj nacin. Taman sam provalio pointere kada sada se javlja REFERENCE. Kada se to koristi i u cemu su prednosti(nedostaci) u odnosu na klasican pointer ( * ). Puno pozdrava od Sikime p.s. Mislim da bi g-din Zivotic to mogao da opise u Skoli C jezika.
cpp.49 janko,
> Naleteh na jednu nepoznanicu u vezi C++ jezika, a to je > REFERENCE, tj. &. Procitao sam da je to slicno pointerima > a ipak razlicito na svoj nacin. Taman sam provalio > pointere kada sada se javlja REFERENCE. Kada se to koristi > i u cemu su prednosti(nedostaci) u odnosu na klasican > pointer ( * ). "Reference" (kod nas: upućivanje) NIJE pointer, već "drugo ime za isti objekat". Npr. int a = 5; int& b = a; cout << b << "\n"; b++; cout << a; ispisuje 5 pa 6. Ako si navikao na Paskal, upućivanje će ti fino zameniti VAR u funkcijama: void swap( int& a, int& b ) { int t; t=a; a=b; b=t; } > Mislim da bi g-din Zivotic to mogao da opise u Skoli C jezika. Teško: upućivanja su specijalitet C++, a škola jezika C se izgleda ugasila? Računari će nastaviti da pišu o C++, međutim. Preporuka: nabavi i neku knjigu o C++.
cpp.52 maksa,
>> sam provalio pointere kada sada se javlja REFERENCE. Kada se >> to koristi i u cemu su prednosti(nedostaci) u odnosu na >> klasican pointer ( * ). Koristi se recimo u sledećim situacijama: - Kada želiš da proslediš f-ji vrednost koju treba da menja. Ovo bi inače radio sa pokazivačima, ali je tako nezgodnije, odn. by reference je mnogo prirodnije. - Kada na pr. želiš da ti jedna f-ja vrati (uslovno rečeno) dve ili više vrednosti. - Kada prosleđuješ f-ji neki oveći objekat, overhead (koja bi bila naša reč ?) koji nastaje pravljenjem kopije tog objekta se može izbeći prosleđivanjem by reference. Ako pri tom' želiš da se osiguraš da taj objekat neće biti promenjen tom f-jom, deklarišeš ga kao const. Mogućnosti su razne, pa neka me neko dopuni, sigurno ima još. PS Obavezno potraži neku knjigu, i u početku drži FAQ pri ruci. Na pr., u njemu je ova priča (o ref.) dosta dobro pokrivena.
cpp.53 sikima,
Imam knjigu Borland C++ od Mikro knjige. Treba mi disketa sa primerima da ne bi sve rucno kucao. Moze na mail a moze i u conf. Unapred hvala Puno pozdrava od Sikime
cpp.54 cosmo,
Zna li neko kako da u okvir za dijalog(u pitanju je OWL da ne bude zabune) ubacim .bmp ili neku slicicu drugog formata?
cpp.55 mkaralic,
> Zna li neko kako da u okvir za dijalog(u pitanju je OWL da ne > bude zabune) ubacim .bmp ili neku slicicu drugog formata? Evo prve pomoći: Kada uđeš u Resource Workshop, odaberi Resource New Bitmap. Tu ubaci šta hoćeš (mislim, napravi sličicu). Kada izađeš iz editora sličica, uzmi opciju Resource Rename i promeni ime sličice (ime će pre toga biti nešto kao BITMAP_1) u recimo 1100 (Ovo hiljadu je važno!). Sada formiraj novi okvir za dijalog i postavi na njega borland button. Klikni duplo na button i tamo gde pise identifikacioni broj objekta (recimo 101) upiši 100 (dakle, broj sličice - 1000). Kada se budeš vratio u dijalog, zateći ćeš tamo sličicu koju si nacrtao. Verovatno postoji i elegantnije rešenje, ali nisam imao vremena da isprobavam. Ako neko zna, mogao bi ovde da napiše nešto o tome. Pozdrav // Mik !!!
cpp.56 zstef,
Molio bih da mi neko odgovori ili da neki savet ... Evo o čemu se radi: - Kako prevesti i linkovati TurboViziju u overlay-e tako da korisnički programi budu na disku a TurboVizija u memoriji ? - Kako prevesti i linkovati TurboViziju u huge model i da li je to uopšte moguće.
cpp.57 drpr,
Pozdrav svima, ja sam totalni duduk za C a kamo li C++. čeleo bih da počnem da učim pa me zanima literatura. čeleo bih da preskočim stepenicu kaoš što je C i da odmah počnem da učim sintaksu i tehnike programiranja pod C++-om Pošto ću imati dugo toplo leto želim da nabavim literaturu koju bih polako čitao i tako učio. Ja sam kod nas naišao na 3 knjige Programski jezik C++ Bjarne Stroustrup Borland C++ Tehnike programiranja Kaare Christian i trebaÚ]lo bi da izađe Objektno orjentisano programiranje na jeziku C++ od Dragana Milićeva. Mene zanima koja je literatura najbolja za početnika kao što sam ja i da se mođe naći kod nas. Zatim me zanima i koju verziju kompajlera da potražim jer da napomenem imam 386 i nekih 20MB slobodnih na disku za ove potrebe. Takođe ako je važno da napomenem da preferiram Borland ali preživeću i sa Malim mekanim. Znam dosta dobro TP ali od objektnog programiranja ni O. Eto nadam se da sam dao dosta podataka pa se nadam da ću naići na solidan odgovor. Inostrane knjige na žalost ne dolaze u obzir jer nemam načina da ih nabavim a nisam siguran ni da ih platim . cope
cpp.58 rmarjan,
Imam jedan problem. Nedavno sam navaio BC++ 4.5 i veoma je to lepo sve zajedno ali treba sa prezivim prelazak sa TC 2.0. Prema nekoj literaturi napravi sam mali primer za WS aplikaciju gde sam napravio i jednu jednostavnu .DLL Kada u delu Priject definisem sta sve treba da se sklopi u aplikaciju (c, RC, DLG, H, DLL... ) to se sve lepo iskompilira ne prijavi nijednu gresku ali kada startujem aplikaciju, prijavi gresku i to problem sa DLL Dynamic Link Library must be present, to je moj tekst prema uputstvu iz primera. Razlog je kod < 32 priliko Load DLL funkcije. U helpu sam nasao da je kod greske broj 5 (koju sam uhvatio) nesto u vezi network ilki slicno tome. Startovao sam SHARE za svaki slucaj u precizno podesio path ali greska i dalje ostaje. Napominjem da druge primere u WS ili za DOS prevodim i radim normalno, jedino sa ovom imam problem. Da li neko ima ideju sta to moze biti. Nemam dovoljno iskustva sa tako jakim C, pa tesko pratim od silne gomile alata sta gde treba podesiti. Neke moje graficke programe , radjene y TC 2.0 sam bez problema preveo, cak i onda kada rade sa nekim "third partyu libraries" kao na primer sa SCGACC odlicno radi. With a little help of my friend... Pozdrav
cpp.59 vlaslo,
Evo nesto... :-))) cu Zoli ================================================================== * Area : C_ECHO (International C) * From : jari laaksonen, 2:221/360.20 (03 May 95 21:44) ================================================================== 3 + 1 variations from the theme "How to make love": With empty makefile: 1. IBM: H:\>nmake love NMAKE : fatal error U1073: don't know how to make 'love' Stop. 2. Borland: H:\>make love Fatal: 'love' does not exist - don't know how to make it 3. Unknown PDMAKE: H:\>pdmake love pdmake: No targets defined! =========== makefile ================== love: ======================================= 4. Unknown PDMAKE: H:\>pdmake love Not war! (This is true: pdmake really prints "Not war!") // Albert (Team OS/2) email: jla@to.icl.fi -+- + Or!g!n: Albert's Point/2 in Finland, Europe (2:221/360.20) ==================================================================
cpp.60 cosmo,
>>... Zeleo bih da pocnem da >>ucim pa me zanima literatura. Zeleo bih da preskocim stepenicu kao >>sto je C i da odmah pocnem da ucim sintaksu i tehnike programiranja >>pod C++-om >>... Ja sam kod nas naisao na 3 knjige >>Programski jezik C++ Bjarne Stroustrup >>Borland C++ Tehnike programiranja Kaare Christian >>i trebaÚ]lo bi da izade Objektno orjentisano programiranje na jeziku C++ >>od Dragana Miliceva. >>... Zatim me zanima i koju verziju kompajlera da potrazim >>jer da napomenem imam 386 i nekih 20MB slobodnih na disku za ove potrebe. >>Takode ako je vazno da napomenem da preferiram Borland ali prezivecu >>i sa Malim mekanim. Ideja o preskakanju jezika C bas i nije sjajna, i ja sam to zeleo, ali sam uvideo da bas i nema nacina. Naime svaka C++ knjiga koja se bavi osnovama tog jezika u svojim primerima iskljucivo objasnjava razliku koje se javila u odnosu na C kod, dok ce one slicnosti(kao sto su skoro sve funkcije) preskakti tako da ti nista nece biti jasno. Ipak, (izdavac cije si knjige pomenuo) je jos pre godinu dana obecela da ce se pojaviti knjiga koja ce uvoditi u C++ programira- nje i one koji nemaju nikakvo znanje o jeziku C. To bi, MOZDA, mogla biti ova knjiga od Milicevica, ali nisam tako siguran(kako po njenom obimu, tako i po opisu iz kataloga nisam bas uveren u to). Ali nikad se nezna, pa zato procitaj uvod i predgovor pa vidi. Bjarne Stroustrp je sjajan. Tu knjigu bi svakako trebao da procitas, ali opet pominjem da (barem po katalogu) je neophodno znanje C jezika. O knjizi Kaare Christiana nemoj ni da razmisljas dok ne izucus C++. Ako bas volis Borland, mogao bi da probas sa Borland C++ 3.1. Naravno uz minimalnu instalaciju(bez primera, debug-era, profiler-a i ...) trebalo bi da mu bude vise nego dovoljno 20Mb. *Dejan.
cpp.61 msavkovic,
###>> Borland C++ Tehnike programiranja Kaare Christian Ovo nije za pocetnike... Za ostalo ne znam. Uglavnom se sve domace, a bogami i dosta stranih knjiga svode na "nadogradnju" c-a cpp-om. Probaj da fotokopiras stranu literaturu recimo : "Object-Oriented programming in c++ / Robert Lafore Waite Group press" Knjiga je odlicna. I pocinje se od nule. Citat: (Preveden) : " Iako vam se cini da su ove naredbe na grckom, ne brinite nista, shvaticete vi vec to " P.S. Ovo videh kod druga, inace knjiga ima 740 strana i kosta 35 USD
cpp.62 maksa,
>> P.S. Ovo videh kod druga, inace knjiga ima 740 strana i kosta >> 35 USD USD 30 (odn 29.95), ako je za BC/C++, ova od 35 $ je verovatno za MS. Ne pokriva šablone ni izuzetke (oslanja se na TC/C++ 1.0), ali je idealna za početak, pogotovo za one koji su u životu preskočili C. Ona od Mikro knjige (Kaare Christian) izgleda lepo, ali se samo prvih 100 i nešto (bez BIDS samo 70 i nešto) strana bavi jezikom, a ostatak je otišao na TurboViziju i (sada već bajati) OWL 1.0. Za domaće uslove možda nije loša solucija uzeti C i C++ (dve knjige, druga upravo izašla) od Lasla Krausa. Isti stil, naslanjaju se jedna na drugu, a ova poslednja pokriva ceo standard, sa dobrim primerima.
cpp.63 rambo,
> Ona od Mikro knjige (Kaare Christian) izgleda lepo, ali se samo > prvih 100 i nešto (bez BIDS samo 70 i nešto) strana bavi > jezikom, a ostatak je otišao na TurboViziju i (sada već bajati) > OWL 1.0. > > Za domaće uslove možda nije loša solucija uzeti C i C++ (dve > knjige, druga upravo izašla) od Lasla Krausa. Isti stil, > naslanjaju se jedna na drugu, a ova poslednja pokriva ceo > standard, sa dobrim primerima. Preporučujem onome ko uči C++ i osnove objektno orjentisanog programiranja da sačeka i uzme knjigu od Dragana Milićeva (asist.na ETF) koja će izaći u julu/avg. u izdanju Mikro knjige. Inače, u pripremi je knjiga BC++ 4.5 (Mikro knjiga). pz,rambo. ps.izvini što tebi repliciram al' nisam upratio ko je pitao
cpp.64 mkaralic,
Zdravo, Da li neko zna kako se u BC++ 4.0 može iskompajlirati DOS program, tako da radi i na XT-u? žovek mi je rekao da u makefile dodam -1-, ali to ne radi. Možda je stvar vezana za memorijski model koji treba da se koristi (i, verovatno, i za ovaj prekidač). Ako je to nemoguće (u šta ipak ne verujem), koja je poslednja verzija ovog kompajlera, koja podržava XT? Unapred Hvala! Pozdrav // Mik !!!
cpp.65 mkaralic,
Zdravo, Da li neko zna kako se u BC++ 4.0 može iskompajlirati DOS program, tako da radi i na XT-u? žovek mi je rekao da u makefile dodam -1-, ali to ne radi. Možda je stvar vezana za memorijski model koji treba da se koristi (i, verovatno, i za ovaj prekidač). Ako je to nemoguće (u šta ipak ne verujem), koja je poslednja verzija ovog kompajlera, koja podržava XT? Unapred Hvala! Pozdrav // Mik !!!
cpp.66 dperkovic,
Kako stoji stvar sa prikazivanjem teksta sa nasim slovima u grafickom modu pod dosom u Borland C++ 3.1 paketu. Da li mogu i ako mogu kako da se prosire postojeci Borlandovi BGI fontovi? DejanP
cpp.67 cosmo,
Kada pokusam da formiram template da prihvata podatke tipa char*, linker mi javlja sledece greske. Linker Error: Undefined symbol tformlist<char far*,10>::~tformlist<char far*,10>() in module SYSWIN Linker Error: Undefined symbol tformlist<char far*,10>::tformlist<char far*,10>() in module SYSWIN Linker Error: Undefined symbol tformlist<char far*,10>::putin(const char far*far&,const char far*far&,const char far*far&, in module SYSWIN Da li ja to nesto pogresno radim ili to stvarno ne ide?
cpp.68 djelovic,
> Kada pokusam da formiram template da prihvata podatke tipa char*, > linker mi javlja sledece greske. > > Linker Error: Undefined symbol tformlist<char far*,10>::~tformlist<char > far*,10>() in module SYSWIN > Linker Error: Undefined symbol tformlist<char far*,10>::tformlist<char > far*,10>() in module SYSWIN > Linker Error: Undefined symbol tformlist<char far*,10>::putin(const char > far*far&,const char far*far&,const char far*far&, in module SYSWIN Pretpostavljam da znas da za sada ove funkcije moraju da budu definisane u hederima a ne u .CPP datotekama? ANSI standard ih je tek pre par meseci smestio u .CPP, pa vecina kompajlera to nije implementirala.
cpp.69 madamovic,
> Kako stoji stvar sa prikazivanjem teksta sa nasim slovima u > grafickom modu pod dosom u Borland C++ 3.1 paketu. Da li mogu i > ako mogu kako da se prosire postojeci Borlandovi BGI fontovi? To nema veze sa BGI nego ima sa CHR. Imaš na Sezam-u editor CHR fajlova, pa dodaj kvačice. Fazon je što to još niko nije i uradio, ili ne namerava da deli sa drugima ;). A poruka gde se to traži ponavlja se svakih cca. 10 dana. Međutim, ima li neko konverziju iz, recimo, TTF u CHR? Ono što meni treba su ĆIRILIĆNI fontovi za C(++)? Malo žešće za praviti?
cpp.70 cosmo,
Prebacio sam implementaciju u header fajl, i sada mi javlja sledecu gresku. Error ..\INCLUDE\TEMPL.H 74: 'TFormList<char *,10>::PutIn(char * const &, char * const &,char * const &, char * const &)' is not a member of 'TFormList<char *,10>' Proverio sam deklaraciju i nisam nasao gresku, tim pre sto dok je imple- mentacija bila u .cpp nije prijavljivao ovakvu gresku.
cpp.71 iznogud,
:: Kada pokusam da formiram template da prihvata podatke tipa char*, :: linker mi javlja sledece greske. :: Da li ja to nesto pogresno radim ili to stvarno ne ide? Template-ovi primaju argumente bilo kog tipa. Baci source, pa da vidimo gde grešiš.
cpp.72 cosmo,
>> Template-ovi primaju argumente bilo kog tipa. Baci source, >> pa da vidimo gde gresis. Evo sourcea!!! templ.h
cpp.73 djelovic,
> Prebacio sam implementaciju u header fajl, i sada mi javlja sledecu > gresku. > > Error ..\INCLUDE\TEMPL.H 74: 'TFormList<char *,10>::PutIn(char * const &, > char * const &,char * const &, char * const &)' > is not a member of 'TFormList<char *,10>' Baci ovde deklaraciju klase i definiciju funkcije PutIn pa da pogledamo. Ovu ti gresku do sada nije javljao jer uopste nije kreirao ni jedan primerak te klase kako je ona bila u .CPP datoteci.
cpp.74 cosmo,
>> Baci ovde deklaraciju klase i definiciju funkcije PutIn pa da pogledamo. Source je vezan za (cinimi se ) poruku 9.72!!!
cpp.75 sikima,
Da li se isplati skidati sa Sezama biblioteku EasyVision. Kakva su iskustva u odnosu na TurboVision? Ako ima neko deo programa pa da mi baci na mail da vidim na sta to lici u odnosu na TurboVision. Puno pozdrava od Sikime
cpp.76 djelovic,
> Source je vezan za (cinimi se ) poruku 9.72!!! Uz tu poruku nalaze se samo definicije funkcija, ali ne i deklaracija klase. Kako je iz gresaka koje si naveo ocigledno da se nesto ne slaze izmedju deklaracije i definicije, jedini nacin da se nadje greska jeste da se pogledaju i jedno i drugo.
cpp.77 cosmo,
>> Uz tu poruku nalaze se samo definicije funkcija, ali ne i deklaracija >> klase. Ja se izvinjavam za ovu gresku, ali sam u zurbi pobrkao fjlove. Evo sada kacim celokupan kod. templ.h
cpp.78 cosmo,
Zar niko ne zna odgovor ?? :((
cpp.79 driks,
Jedno pitanjce: Kako izvrsiti deklaraciju interrupt f-ja koje prenose vrednosti u Borlandovom C++. Npr: // prototip f-je void interrupt far new_13( unsigned bp,unsigned di,unsigned si,unsigned ds, unsigned es,unsigned dx,unsigned cx,unsigned bx, unsigned ax,unsigned ip,unsigned cs, unsigned flags ); .... // negde u programu postavljanje novog prekida setvect(0x13, new_13); // linija 148 // greske pri kompilaciji Error STAT_PR1.CPP 148: Cannot convert 'void (interrupt *)(unsigned int,unsig Error STAT_PR1.CPP 148: Type mismatch in parameter '__isr' in call to 'setvect(int,void (interrupt *)(...))' dragan
cpp.80 jasicp,
Ne pratim redovno ovu konferenciju, tako da je mozda bilo price o sledecem pitanju, pa vas ipak molim za pomoc. Treba da odlucimo u preduzecu koji kompajler da kupimo. Do sada je radjeno u objektnom Pascalu i C++. Vise sam radiou Pascalu, oba su inace kompajlera Borlandova. Sada treba da odlucimo sta cemo kupiti. Molim vas za savet, tj. sta ne bih mogao da radim u OP (Delphiju ili BP70), a mogao bih u C++. Ili onako sirovo, zasto Delhi ima 50MB a BC++ 4.5 100MB na disku :) ? U cemu su prednosti C++ 4.5. Zasto bi bio bolji jedan u odnosu na drugi.
cpp.81 janko,
> Sada treba da odlucimo sta cemo kupiti. Molim vas za > savet, tj. sta ne bih mogao da radim u OP (Delphiju ili > BP70), a mogao bih u C++. Ili onako sirovo, zasto Delhi > ima 50MB a BC++ 4.5 100MB na disku :) ? U cemu su > prednosti C++ 4.5. Zasto bi bio bolji jedan u odnosu na > drugi. Svaki služi svojoj svrsi. Prvo BC: - Nema ništa za rad sa bazama podataka. Delfi ima gotove kontrole za korišćenje raznih baza podataka. - OWL je značajno teži za korišćenje od vizuelnog programiranja Delfija. - Šta ima u 100 MB? Ništa posebno "zvučno": kompajler, helpovi, biblioteke za linkovanje, primeri i sors OWL-a. Može da pravi 32-bitne aplikacije. Delfi: - Na njemu će se čas posla napraviti aplikacija koja radi sa bazama podataka. - Znatno brže prevodi. - U 60 MB je kompajler, helpovi, primeri i biblioteke, ali i drajveri za baze, jednokorisnički SQL server, Reportsmith -- program za generisanje izveštaja na osnovu gotovih baza podataka i još koješta. - Na njemu je teško ili skoro nemoguće napraviti efikasan, recimo, kompajler ili program slične složenosti, jer Paskal prosto nije dovoljno fleksibilan ni sa objektnim proširenjima, a ne postoje ni kvalitetni specijalizovani alati razvijeni za C i C++. - 1.0 verzija ne pravi višekorisničke aplikacije. - Jeftinija verzija Delfija nije potpuna -- ne može da pravi programe za rad sa bazama u mreži. Skuplja verzija može, ali iako je monogo skuplja, ipak ne sadrži server baze, već on mora takođe da se kupi posebno. Međutim, za sistem baze podataka baziran na SQL-u je poznato da ima slabije performanse od starinskih "ručno podešavanih" ne-relacionih sistema. Ali je KVALITET znatno veći: dramatično veća fleksibilnost pri promenama zahteva i održavanju, sa delfijem ili Accessom i efektan korisnički interfejs itd. Izbor treba da ti zavisi od vrste programa kakve želite da razvijate. Za jednostavne (po zahtevima, i ono što se zove "programiranje po kući" (makar bila i velika firma)) programe dovoljan je Delfi. Za vrlo složene programe, BC++ je nezamenljiv, iako će razvoj trajati znatno duže. Neophodan ako praviš komercijalni program za širu prodaju. Teži za korišćenje, programiranje znatno duže traje, ali potencijalno veće snage.
cpp.82 driks,
AJDE da probam ponovo, nije valjda da niko nezna Jedno pitanjce: Kako izvrsiti deklaraciju interrupt f-ja koje prenose vrednosti u Borlandovom C++. Npr: // prototip f-je void interrupt far new_13( unsigned bp,unsigned di,unsigned si,unsigned ds, unsigned es,unsigned dx,unsigned cx,unsigned bx, unsigned ax,unsigned ip,unsigned cs, unsigned flags ); .... // negde u programu postavljanje novog prekida setvect(0x13, new_13); // linija 148 // greske pri kompilaciji Error STAT_PR1.CPP 148: Cannot convert 'void (interrupt *)(unsigned int,unsig Error STAT_PR1.CPP 148: Type mismatch in parameter '__isr' in call to 'setvect(int,void (interrupt *)(...))' dragan
cpp.83 driks,
Subject: primer TVision iz knjige " Borland C++ Tehnike programiranja " Naime, taj primer (pozivanje okvira za fajlove iz okvira za dijalog na str. 215) radi samo za unos prvog fajla, dok za unos drugog i treceg ispise na desktop ovo: assertion failed: heapcheck()>=0 file new.cpp, line 138 Posto sam jos na "VI" sa TV, pretpostavljam da je neki problem u alokaciji/dealokaciji mem., ali ne vidim gde bi to moglo da bude. Uz poruku ide i source+exe. Ajde ako ima jos neka dobra dusa, da mi pomogne :)) dragan proba.zip
cpp.84 maksa,
>> Kako izvrsiti deklaraciju interrupt f-ja koje prenose >> vrednosti u Borlandovom C++. U PC.PROG/jezici postoji poruka 6.89, uz nju postoji jedan fajl koji bi fajl-moderator mogao da prebaci u PROGINFO, ili INFOPROG, kako se već zove dir. Izvađeno odande: RAD SA INTERAPTIMA Ideja je da se na neki od raspolozivih inerapta, umesto postojece funkcije koja ga obradjuje, zakaci nasa funkcija koja ce nesto korisno raditi, i da se po potrebi stara funkcija vrati na svoje mesto. To se radi na sledeci nacin: Najpre se obezbedi jedan pokazivac na funkciju u kojem ce se cuvati pokazivac na staru interapt rutinu, koja se do sada i bez nas sasvim srecna izvrsavala. Ovo je potrebno za kasniju restauraciju pri izlasku: void interrupt (*Ime_Pokazivaca_Na_Staru_Funkciju)(...); Sada se napise nasa funkcija koja ce se izvrsavati u interaptu: void interrupt Ime_Nase_Interapt_Rutine (...) { ... Ime_Pokazivaca_Na_Staru_Funkciju (); //ako treba da se stara ... //funkcija pozove } I sada, u glavnom programu se vrsi cuvanje stare interapt funkcije i njena zamena sa novom, nasom: Ime_Pokazivaca_Na_Staru_Funkciju = getvect (Broj_Interapta); setvect (Broj_Interapta, Ime_Nase_Interapt_Rutine); I na kraju, kad nam vise ne treba ovakva interapt funkcija, vracamo staru: setvect (Broj_Interapta, Ime_Pokazivaca_Na_Staru_Funkciju);
cpp.85 .djn,
> Svaki sluzi svojoj svrsi. Prvo BC: > > - Nema nista za rad sa bazama podataka. Delfi ima gotove kontrole za > koriscenje raznih baza podataka. Da li MS VC++ 1.5 i MS VC++ 2.0 imaju nesto za manipulaciju bazama podataka?
cpp.86 cosmo,
U modulu koji se stara o prozoru(MDI aplikacije) ovaj deo funkcije bi trebao da zasivi neke od opcija menija. Na zalost on to ne cini, a debugger pokazuje da program prolazi kroz sve dole navedene redove. Da li neko ima ideju gde bi tu mogla biti greska. Ne znam koliko je to vazno, ali da napomenem. Pri kreiranju prozora potomka, ucitava se novi meni. Funkcija EnableMenuItem() mi vraca vrednost -1, sto znaci da meni ne postoji?? HMENU hMenu = GetMenu(HWindow); if (!flagMenu) { ::EnableMenuItem(hMenu, CM_FILESAVE, MF_GRAYED); ::EnableMenuItem(hMenu, CM_FILESAVEAS, MF_GRAYED); ::EnableMenuItem(hMenu, CM_TAdd, MF_GRAYED); ::EnableMenuItem(hMenu, CM_TRemove, MF_GRAYED); ::EnableMenuItem(hMenu, CM_TRemoveAll, MF_GRAYED); ::EnableMenuItem(hMenu, CM_TUpdate, MF_GRAYED); ::EnableMenuItem(hMenu, CM_NewRound, MF_GRAYED); ::EnableMenuItem(hMenu, CM_NewSeason, MF_GRAYED); }
cpp.87 djelovic,
> HMENU hMenu = GetMenu(HWindow); > > if (!flagMenu) { > ::EnableMenuItem(hMenu, CM_FILESAVE, MF_GRAYED); > ::EnableMenuItem(hMenu, CM_FILESAVEAS, MF_GRAYED); > ::EnableMenuItem(hMenu, CM_TAdd, MF_GRAYED); > ::EnableMenuItem(hMenu, CM_TRemove, MF_GRAYED); > ::EnableMenuItem(hMenu, CM_TRemoveAll, MF_GRAYED); > ::EnableMenuItem(hMenu, CM_TUpdate, MF_GRAYED); > ::EnableMenuItem(hMenu, CM_NewRound, MF_GRAYED); > ::EnableMenuItem(hMenu, CM_NewSeason, MF_GRAYED); > } Jock nego: HMENU hMenu = GetMenu(HWindow); if (!flagMenu) { ::EnableMenuItem(hMenu, CM_FILESAVE, MF_GRAYED | MF_BYCOMMAND); ::EnableMenuItem(hMenu, CM_FILESAVEAS, MF_GRAYED | MF_BYCOMMAND); ::EnableMenuItem(hMenu, CM_TAdd, MF_GRAYED | MF_BYCOMMAND); ::EnableMenuItem(hMenu, CM_TRemove, MF_GRAYED | MF_BYCOMMAND); ::EnableMenuItem(hMenu, CM_TRemoveAll, MF_GRAYED | MF_BYCOMMAND); ::EnableMenuItem(hMenu, CM_TUpdate, MF_GRAYED | MF_BYCOMMAND); ::EnableMenuItem(hMenu, CM_NewRound, MF_GRAYED | MF_BYCOMMAND); ::EnableMenuItem(hMenu, CM_NewSeason, MF_GRAYED | MF_BYCOMMAND); } -- Da iskoristim priliku: malopre sam na Windows 95 instalirao Visual C++ 2.0, te sam napravio neke testove u odnosu na Borland C++ 4.5. Rezultati: Visual C++ - ima integrisan resource workshop - MFC predstavlja neku vrstu industrijskog standarda Borland C++ - cetiri (4) puta brze vreme prevodjenja i linkovanja - OWL je drasticno bolji od MFC-a - malo je blizi standardnim C++ bibliotekama mada sada i Visual C++ ima izuzetke Class Experti/Wizardi su tu negde. Majkrosoftov je udobniji ali je Borlandov za nijansu mocniji. Bilo bi lepo da Borland ukrade par trikova od Majkrosofta. Podrska u vidu raznih Developers Network CD izdanja zapravo ne vuce ni na jednu stranu. Ono sto je zanimljivo na ovim diskovima, a to su mali Windows trikovi, napisano je na API-ju tako da ni MFC ni OWL tu nista ne znace. Elem, ostajem na Borlandu mada je to ipak stvar nijansi.
cpp.88 cosmo,
>> ::EnableMenuItem(hMenu, CM_FILESAVE, MF_GRAYED | MF_BYCOMMAND); na zalost i ovako mi vraca vrednost -1 :((
cpp.89 iznogud,
:: - OWL je drasticno bolji od MFC-a Možeš li da navedeš neki primer? MFC nema nešto što OWL ima? :: - malo je blizi standardnim C++ bibliotekama mada sada i Visual C++ ima :: izuzetke Dali su izuzeci podržani u MFC-u kao što je to slučaj sa OWL-om (tj. kada pokušaš da uradiš nešto glupo tipa nepozivanje konstruktora bazne klase on ne zaglavi MaleMeke Prozore nego izbaci kulturan dialog box sa upozorenjem)? P.S. Kad smo već kod Win95... Na žalost, video sam ga samo na slici :(, ali nešto mi je palo u oči: na sve strane se rabe oni tabbed dialozi. Ima li podrške za to u novom API-ju, ili se moraju praviti od nule?
cpp.90 djelovic,
> Možeš li da navedeš neki primer? MFC nema nešto što OWL ima? Ne, ne postoji nista sto OWL moze a da MFC ne moze. Funkcionalno su isti, ali tako gledano i masinac i C++ su funkcionalno isti :). OWL je bolje dizajniran i zbog toga je portabilniji i komforniji za upotrebu. MFC nije nista drugo do klasama obavijen API - nesto kao OWL 1.0 samo bez onih cudnih konstrukcija sa virtuelnim funkcijama. > Dali su izuzeci podržani u MFC-u kao što je to slučaj sa OWL-om (tj. > kada pokušaš da uradiš nešto glupo tipa nepozivanje konstruktora > bazne klase on ne zaglavi MaleMeke Prozore nego izbaci kulturan > dialog box sa upozorenjem)? Pozivanje konstruktora bazne klase bi trebao da spreci kompajler a ne izuzeci :). Salu na stranu, izuzeci su definisani u skladu sa ANSI standardom dakle skoro identicno onom sto BC++ 4.5 nudi. A za taj Message Box koji spominjes kriv je sledeci kod koji se nalazi u fonkciji OwlMain: try { TMyApp app; int ret = app.Run(); return ret; } catch (xmsg& x) { ::MessageBox(0, x.why().c_str(), "Exception", MB_OK); } > ali nešto mi je palo u oči: na sve strane se rabe oni tabbed dialozi. > Ima li podrške za to u novom API-ju, ili se moraju praviti od nule? Da budem iskren ne znam. Prakticno svi sistemski dijalozi su "tabbed" ali to ne mora nista da znaci - sudeci po DLL-ovima u SYSTEM direktorijumu dobar deo Windowsa 95 napisan je u MFC-u koji pak sadrzi podrsku za "tabbed" dijaloge.
cpp.91 omega,
Re: BC++ v4.5 Ţ - cetiri (4) puta brze vreme prevodjenja i linkovanja A problemi sa fragmentacijom memorije, potreba za preko 16 mb? Ţ Podrska u vidu raznih Developers Network CD izdanja zapravo ne vuce ni na Ţ jednu stranu. Zar i Borland ima svoj DN CD?
cpp.92 djelovic,
> A problemi sa fragmentacijom memorije, potreba za preko 16 mb? Sta sa njima? > Zar i Borland ima svoj DN CD? Ne, pogresno si me shvatio. Rekao sam da razni Majkrosoftovi Developers Network CD-i ne odlucuje bitno u korist Visual C++-a jer svi (meni) zanimljivi primeri demonstriraju neku Windows tehniku te su napisani u cistom API-ju.
cpp.93 mkaralic,
> Borland C++ > - cetiri (4) puta brze vreme prevodjenja i linkovanja Jedno moje zapažanje. MSVC poleti kada na disku nema STACKER-a. U tom slučaju se dešava sledeće: Borland C++ 4.0 6 minuta kompajlira osnovni program za Windows. (AppEx) MSVC to isto radi za 4 min. i taj program ima podršku za OLE2. Takođe, samo okruženje iz MSVC radi mnogo brže nego ono iz BC. Radi se o mašini sa 4MB. Pozdrav // Mića
cpp.94 omega,
Ţ> A problemi sa fragmentacijom memorije, potreba za preko 16 mb? Ţ Sta sa njima? Pa da li su zaista takvi problemi kod BC++ v4.5?
cpp.95 djelovic,
> Pa da li su zaista takvi problemi kod BC++ v4.5? Tja. I BC++ 4.5 i Visual C++ 2.0 kao realni minimum imaju 8 Mb (sa 4Mb ih ne vredi ni startovati), ali je za stvarno komforan rad potrebno minimum 16 Mb a idealno je 32 Mb. BTW, ima li neko prognozu kada ce cene memorije poceti da padaju? Sa ovako gladnim aplikacijama to polako postaje goruce pitanje.
cpp.96 janko,
Već više puta pominjana knjiga u ovoj konferenciji se pojavila u knjižarama: Dragan Milićev Objektno orjentisano programiranje na jeziku C++ Mikro knjiga, 1995. Imam njen sadržaj u elektronskom obliku, a možda još nekog zanima. Kada bih pokušao da sumiram u jednoj rečenici, rekao bih: "sve o C++ na jednom mestu". Inače, autorova elektronska adresa je milicev@buef31.etf.bg.ac.yu Koliko znam, sa Sezama je ova adresa dostupna preko UUCP mehanizma. ============================= Sadržaj Predgovor Kome je knjiga namenjena? Sadržina knjige Kako čitati knjigu? Zahvalnice Deo I Uvod u objektno orijentisano programiranje i jezik C++ Glava 1 Šta je i kako je nastalo objektno orijentisano programiranje? Šta je objektno orijentisano programiranje? Zašto objektno orijentisano programiranje? Šta je i kako je nastao jezik C++? Šta daju OOP i C++ kao rešenja? Šta se menja prelaskom na OOP? Glava 2 Pregled osnovnih koncepata OOP u jeziku C++ Klase i objekti Klasa i članovi klase Kreiranje i korišćenje objekata Kontrola pristupa članovima Konstruktori i destruktori Preklapanje operatora Nasleđivanje Polimorfizam Glava 3 Osnovni koncepti jezika C++ nasleđeni iz jezika C Ugrađeni tipovi i deklaracije Pokazivači Nizovi Izrazi Naredbe Funkcije Funkcije nečlanice Struktura programa Nekoliko jednostavnih primera Dokle smo stigli? Deo II Koncepti jezika C++ koji nisu objektno orijentisani Glava 4 Organizacija programa Pretprocesor Direktive Makrodefinicije i makrorazvoji Direktiva #include Uslovno prevođenje Upotreba makrodefinicija Operatori # i ## Ostale direktive Predefinisana imena Leksička analiza Tokeni Komentari Identifikatori Ključne reči, operatori i separatori Literali Deklaracije i definicije Organizacija programa i povezivanje Organizacija programa po fajlovima Fajlovi-zaglavlja Standardna zaglavlja Struktura programskog fajla Glavna funkcija (main) i završetak programa Glava 5 Osnovni pojmovi Oblast važenja i životni vek Oblast važenja imena Objekti i lvrednosti čivotni vek objekata Memorijska oblast O konverzijama tipova Glava 6 Ugrađeni tipovi Osnovni tipovi Tipovi char Tipovi int Tipovi float i double Nabrajanja Tip void Izvedeni tipovi Nizovi Pokazivači Nizovi i pokazivači Nizovi znakova i pokazivači na znakove Konstante Strukture Unije Bit polja Opšti slučaj izvođenja tipova Glava 7 Deklaracije Specifikatori Deklaracije i definicije Povezivanje Specifikatori memorijske oblasti Specifikator typedef Specifikatori const i volatile Deklaracija asm Specifikacije povezivanja sa drugim jezicima Inicijalizacija Inicijalizacija objekata Inicijalizacija agregata Glava 8 Operatori i izrazi Aritmetički operatori Aritmetički binarni operatori Aritmetički unarni operatori Prefiksni i postfiksni inkrement i dekrement Operatori na nivou bita Operatori pomeranja Logički operatori na nivou bita Logički operatori Relacioni operatori i operatori jednakosti/nejednakosti Relacioni operatori Operatori jednakosti/nejednakosti Operatori dodele Operatori referenciranja i dereferenciranja Operator dereferenciranja * Operator pristupa članu . Operator dereferenciranja -> Operator uzimanja adrese & Operatori za rad sa dinamičkom memorijom Operator new Operator delete Razlike u odnosu na jezik C Ostali operatori Operator indeksiranja [] Operator poziva funkcije () Operator uslova ?: Operator sekvence , Operator veličine sizeof Operator eksplicitne konverzije () Operator razrešavanja oblasti važenja :: Izrazi Konstantni izrazi Pregled prioriteta operatora Standardne konverzije Celobrojna promocija Celobrojne konverzije Tipovi float i double Celi i racionalni brojevi Aritmetičke konverzije Konverzije pokazivača i referenci Glava 9 Naredbe Izrazi i deklaracije kao naredbe Izrazi kao naredbe Deklaracije kao naredbe Uslovne naredbe Naredba if Naredba switch Iteracione naredbe Naredba while Naredba do Naredba for Naredbe break i continue Naredbe skokova i povratka iz funkcije Naredba goto Naredba return Složene naredbe (blokovi) Glava 10 Funkcije Deklaracija funkcije i prenos argumenata Deklaracija funkcije Definicija funkcije Poziv funkcije i prenos argumenata Funkcije sa neodređenim brojem argumenata Podrazumevani argumenti Reference Pojam referenci Inicijalizacija referenci Upotreba referenci Neposredno ugrađivanje u kôd Preklapanje imena funkcija Pojam preklapanja imena funkcija Deklaracije preklopljenih funkcija Razrešavanje poziva Adresa preklopljene funkcije Primer tradicionalnog programiranja Deo III Objektno orijentisani koncepti jezika C++ Glava 11 Klase Principi apstrakcije i enkapsulacije Pojam klase i deklaracija klase Pojam klase Deklaracija i ime klase Oblast važenja klase Ugnježdavanje klasa Strukture i unije žlanovi i objekti klase Deklaracije članova klasa Pokazivač this Primerci klase Inspektori i mutatori Kako se realizuju klase i objekti? Kontrola prava pristupa Pristup članovima klase Prijatelji klase Zajednički članovi klasa Zajednički podaci članovi Zajedničke funkcije članice Pokazivači na članove klase Pojam pokazivača na članove klase Tip pokazivača na članove klase Upotreba pokazivača na članove Kako se realizuju pokazivači na članove klase? Konstruktori i destruktori Pojam konstruktora Inicijalizacija članova Kada se poziva konstruktor? Konstruktor kopije Pravila vezana za konstruktore Konverzije tipova pomoću konstruktora Destruktor Privremeni objekti Eksplicitna inicijalizacija objekata Glava 12 Preklapanje operatora Operatorske funkcije Osnovna pravila Sporedni efekti i veze između operatora Operatorske funkcije kao članice i prijatelji Unarni i binarni operatori Neki posebni operatori Operatori ++ i -- Operator () Operator [] Operator -> Operatori new i delete Operator = Konstruktor kopije i operator dodele Konverzije tipova Operatori konverzije tipova Ponovo o konverzijama tipova Pregled svojstava članova, prijatelja i specijalnih funkcija Osnovni standardni ulazno/izlazni tokovi Standardne funkcije u jeziku C Klase istream i ostream Ulazno/izlazne operacije za korisničke tipove Glava 13 Nasleđivanje Izvedene klase Šta je nasleđivanje i šta su izvedene klase? Kako se definišu izvedene klase u jeziku C++? Privatno, zaštićeno i javno izvođenje Prava pristupa Semantička razlika između privatnog i javnog izvođenja Izvedene klase i konverzije Konstruktori i destruktori izvedenih klasa Kako se realizuje izvođenje klasa? Višestruko izvođenje Šta je višestruko izvođenje? Višestruki podobjekti Virtuelne osnovne klase Inicijalizacija osnovnih klasa Kako se realizuje višestruko izvođenje? Polimorfizam Šta je polimorfizam? Virtuelne funkcije Dinamičko vezivanje Virtuelne funkcije i virtuelne osnovne klase Pravila vezana za virtuelne funkcije Virtuelni destruktor Nizovi i nasleđivanje Apstraktne klase Kako se realizuje virtuelni mehanizam? Glava 14 Generički mehanizam Šta je generički mehanizam? Generisanje klasa Šabloni klasa Nasleđivanje i generisanje Generisanje funkcija Šabloni funkcija Preklapanje i generisanje funkcija Šabloni funkcija članica Deklaracije i definicije šablona Glava 15 Obrada izuzetaka Šta je obrada izuzetaka? Postavljanje i obrada izuzetka Mehanizam obrade izuzetaka u jeziku C++ Postavljanje izuzetka Obrada izuzetka Konstruktori i destruktori Specifikacije izuzetaka Korišćenje mehanizma obrade izuzetaka Specijalne funkcije za obradu izuzetaka Funkcija terminate Funkcija unexpected Deo IV Osnovni principi objektno orijentisanog projektovanja Glava 16 Stil programiranja u jeziku C++ Tipovi Koncept tipa Korektnost konstantnosti Vrednosti, reference i pokazivači Klase Stil pisanja deklaracija klasa Prava pristupa Glava 17 Objektno orijentisano projektovanje Osnovni principi projektovanja Uvod Principi objektno orijentisanog programiranja Dekompozicija Značaj projektovanja Etape projektovanja Identifikacija klasa i preliminarna hijerarhija Određivanje odgovornosti i servisa Određivanje odnosa i saradnje Definisanje hijerarhije klasa Podela odgovornosti po grupama Opisi servisa Finalna specifikacija Glava 18 Primeri realizacije klasa Primer 1: Klasa koja realizuje tip kompleksnih brojeva Primer 2: Klasa koja realizuje matrice proizvoljnih dimenzija Primer 3: Klase koje realizuju liste i iteratore listi Glava 19 Zaključak Šta smo naučili? Šta dalje? Prilozi Prilog 1 Pregled sintakse jezika C++ Ključne reči (keywords) Izrazi (expressions) Deklaracije (declarations) Deklaratori (declarators) Deklaracije klasa (class declarations) Naredbe (statements) Pretprocesor (preprocessor) Šabloni (templates) Obrada izuzetaka (exception handling) Prilog 2 Pregledi Prilog 3 Literatura Prilog 4 Rečnik Prilog 5 Indeks
cpp.97 spantic,
> Ne, pogresno si me shvatio. Rekao sam da razni Majkrosoftovi Developers > Network CD-i ne odlucuje bitno u korist Visual C++-a jer svi (meni) > zanimljivi primeri demonstriraju neku Windows tehniku te su napisani u Osim što se isti isporučuju u okviru MS programa koji se napolju u principu plaća, tako da radio ti ili ne sa MVC MS je u plusu, a većina i radi sa njim.
cpp.98 madamov,
> Već više puta pominjana knjiga u ovoj konferenciji se pojavila > u knjižarama: Znaš li cenu? Nadam se da cena nije prevelika, mada ovakva knjiga sudeći po tvojoj recenziji u R110 zaslužuje sve ma koliko da košta B). Ili da idem kod Dragana i Laleta da mi daju "poklon". B) > Imam njen sadržaj u elektronskom obliku, a možda još nekog zanima. Vidim da si i ti počeo da navikavaš gore pomenutu dvojicu da se recenzija može praviti i elektronskim putem. B)
cpp.99 iznogud,
:: Pozivanje konstruktora bazne klase bi trebao da spreci kompajler a ne :: izuzeci :). Nisi me razumeo. Npr. TWindow je virtuelna osnovna klasa za krš (izvedenih) klasa u hijerarhiji. To, naravno, znači da njegov konstruktor moraš da pozivaš kada god izvodiš neku klasu iz naslednica TWindow (TFrameWindow, etc). Ukoliko to zaboraviš, objekat neće biti inicijalizovan kako treba, tj. handle koji dobija od Win-a za objekat _na ekranu_ će mu biti NULL. Da nema izuzetaka, a pošto se to sve dešava u konstruktoru koji nema načina da javi da li je sve prošlo kako treba (ne vraća nikakvu vrednost), pri prvom pozivu bilo kakve encapsulated API f-je bi se Prozori zakočili. Ovako se, zahvaljujući izuzecima, program kulturno zaustavi uz poruku. Ergo, nije stvar u tom malom try{..}catch bloku u WinMain, već mnogo dublje. Naravno, sve se ovo može uraditi i u MFC (dodavanjem throw tamo gde treba), al' što da to radim ja kada može MS? P.S. Ima li OWL 4.5 te tabbed dialoge? OWL 4.0 ih nema :(((
cpp.100 iznogud,
:: Imam njen sadržaj u elektronskom obliku, a možda još nekog zanima. :: Kada bih pokušao da sumiram u jednoj rečenici, rekao bih: "sve o C++ na :: jednom mestu". Deliš džabe? Nije li to povreda autorskih prava? P.S. Nemoj zameriti, ali postaje pomalo neukusno tvoje reklamiranje pomenute knjige. Šta se dešava - autor ti je dobar ortak, kum, brat... kad u poslednjim 'Računarima' celu 'Školu jezika C++' pretvaraš u 'izlog knjige', gde rečenu knjigu hvališ do neba, tvoje mišljenje se pojavljuje u propagandnom letku 'Mikro knjige', bacaš ovakve poruke u konferencije... Obećan ti je procenat? ;))))))))). Ne sumnjam da je knjiga dobra (sama činjenica da je pisac autor CC++-a (dakle, mag ;))) dosta govori, ali... spusti malo loptu. Postižeš kontra-efekat. NHF. P.S. Ne verujem da ni u jednoj knjizi može da se kaže 'sve' o bilo kom programskom jeziku.
cpp.101 spantic,
> Ne, pogresno si me shvatio. Rekao sam da razni Majkrosoftovi Developers > Network CD-i ne odlucuje bitno u korist Visual C++-a jer svi (meni) > zanimljivi primeri demonstriraju neku Windows tehniku te su napisani u Osim što se isti isporučuju u okviru MS programa koji se napolju u principu plaća, tako da radio ti ili ne sa MVC MS je u plusu, a većina i radi sa njim.
cpp.102 mileusna,
>> Znaš li cenu? Nadam se da cena nije prevelika, mada ovakva knjiga >> sudeći po tvojoj recenziji u R110 zaslužuje sve ma koliko da košta >> B). Ili da Pretplatna cena Mikro Knjige bila je 70 dinara. Sada je cena verovatno nešto veća.
cpp.103 ikordic,
RE: Cene DRAM => BTW, ima li neko prognozu kada ce cene memorije poceti da padaju? Sa => ovako gladnim aplikacijama to polako postaje goruce pitanje. Ne skoro, a pogotvo ne kod nas. Najpre zato što je u svetu ovoga leta prisutna nestašica DRAM, a zatim tu je i potpuno zanemarljiv :) skok dolara (sa 1,38 na čak 1,51 DEM!), biće čudo ako skok cena ovde ne bude abnormalan. NoName 16 MB SIMM 72p 70 ns np su sa 650,- otišli na 730,- i još se ne zna gde će stati.
cpp.104 sikima,
> knjiga Objektno programiranje na C++ - Mikro knjiga Cena knige je 85 din. Sto se tice knjige mislim da je Janko malo vise hvali ali o tome ce moci da se kaze posle 2-3 meseca kada knjiga bude vec uveliko u opticaju i vise ljudi reklo sud o njoj. U svakom slucaju, ja sam je kupio (((: Puno pozdrava od Sikime
cpp.105 janko,
> Nemoj zameriti, ali postaje pomalo neukusno tvoje > reklamiranje pomenute knjige. Šta se dešava - autor ti je > dobar ortak, kum, brat... kad u poslednjim 'Računarima' > celu 'Školu jezika C++' pretvaraš u 'izlog knjige', gde > rečenu knjigu hvališ do neba, tvoje mišljenje se > pojavljuje u propagandnom letku 'Mikro knjige', bacaš > ovakve poruke u konferencije... Obećan ti je procenat? Još uvek je kod nas stanje takvo da se pisanje *dobre* knjige samo po sebi materijalno praktično ne isplati ni samom autoru, te su ideje o "procentima" potpuno bez osnova. Ako izračunaš sate uložene u rad, i zaradu od knjige, ispašće da si po satu zaradio mnogo manje nego da si radio neki "prostiji" posao (ili naštancovao za isto vreme pet knjiga prevođenjem (i potpisivanjem kao da su knjige tvoje) stranih knjiga o pet programa koje su opet nastale samo prepisivanjem helpa tih programa). :( Nisam siguran ni da sam knjigu "hvalio do neba", baš sam pokušao da o njoj pišem kao što bih pisao i o svakoj drugoj: pogledaj tekst: od tri stupca teksta, u većem delu drugog se razmatraju neaktuelnosti knjige prema najnovijem NACRTU (dakle, stvarima koje još NISU NI UŠLE u standard jezika) što čak možda nije ni fer pristup. Skoro ceo treći stubac ilustruje koliko će, kada se nacrt usvoji, biti važno i poznavanje standardnih biblioteka, o kojima se NE PIŠE U KNJIZI (opet, voidmo računa da praktično one još uvek nisu deo standarda, niti su šire pristupačni prevodioci sa njima). Ako ti ni ovo nije dovoljno, primetićeš i izjavu da knjiga nije baš lako shvatljiva početnicima, i da nije baš "za svakog". Dakle, ne može se reći da sam je "štedeo". Sa druge strane, za sve što sam rekao da je u njoj dobro, STOJIM pri tome. Knjige je JAKO dobra, za naše uslove u kojima teže (i skuplje) dolazimo do stranih knjiga IZUZETNO dobra i korisna, a ne verujem da ćeš neke stvari iz nje u tom obliku maći u bilo kojoj stranoj knjizi (recimo, matematički precizan algoritam razrešavanja poziva funkcija!) > Ne sumnjam da je knjiga dobra (sama činjenica > da je pisac autor CC++-a (dakle, mag ;))) dosta govori, Ako si pratio tekstove "škole", verovatno si primetio da to nije prva knjiga o kojoj sam pisao u "školi". Kriterijum za prestavljanje knjiga u "školi" je bio da se one mogu naći na našim prostorima i da su veoma BITNE za onoga ko se ozbiljno bavi ovim jezikom. ARM nije bio prestavljan. Prvo, pretežak je za veliku većinu, drugo, nije bio preveden na naš jezik. Ova knjiga je, po meni, za većinu korisnika BOLJA od ARM-a, jer suvoparnu materiju ARM-a obrađuje pristupačnije. I o ovome sam pisao u članku, čini mi se? Da ti otkrijem malo "srodnosti" o kojoj postavljaš hipoteze: nimalo slučajno u celoj priči, tema mog diplomskog bila je "Izvršno okruženje za programski jezik Concurrent C++" (prevedeno na "srpski": "run-time library" za isti). Ako već imam više informacija o nečemu u odnosu na ostale, zašto bar neke ne bih podelio sa drugima? Ja bih, recimo, bio srećan kada bih u elektronskim konferencijama mogao da pričam sa puno više ljudi od kojih bih mogao čuti nešto novo, nešto što ne znam i sl. > ali... spusti malo loptu. Postižeš kontra-efekat. Pogledaj prethodne poruke u ovoj konferenciji u kojima se pisalo o ovoj knjizi. Nećeš naći ni jednu moju, iako mislim da imam dovoljno informacija koje bi vredelo podeliti sa drugima. Sad sam konstatovao da sam sadržaj ubacio u pogrešnu konferenciju: imam utisak da se samo tema cccc prenosi na BeoInternet, ali ne i cpp, pa momak koji je u cccc pitao "a šta ima u toj knjizi, ima li exceptions" je još uvek ostao bez odgovora :((( (a upravo sam zbog takvih pitanja okačio sadržaj). Lično, jako bih voleo da na Sezamu mogu da nađem puno više informacija o SVAKOJ knjizi koja izađe kod nas. Gde bi drugde mogao da se objavi čitav sadržaj neke knjige? Tako nešto se ne radi ni u jednom časopisu, a za elektronski medijum je vrlo prirodno. > P.S. Ne verujem da ni u jednoj knjizi može da se kaže > 'sve' o bilo kom programskom jeziku. Programski jezici, NAJUčE gledano (dakle, upravo bez razmene iskustava o tome kako se nešto korisno i elegantno radi), su krajnje ograničene stvari: jedan programski jezik je opisan njegovom gramatikom, specificiranjem mehanizama prenosa parametara, vidljivosti, razrešavanja konverzija i poziva funkcija. No, ostaje problem jezik samo čitajući tekst u kome samo piše nešto kao: member-list: member-declaration opt-member-list access-specifier : opt-member-list (itd) > Deliš džabe? Nije li to povreda autorskih prava? Pravo da ti kažem, ne znam! Vrlo moguće da jeste, ali ne verujem da će mi autor zameriti zbog toga, ipak je to samo SADRčAJ (Table of Contents, da izbegnem dvosmislenost srpskog) a ne bilo šta od materije izložene u knjizi. Kao što si primetio, već sam ga podelio džabe, u poruci na koju odgovaraš. Milan (Adamov) je shvatio to odmah.
cpp.106 janko,
>> Već više puta pominjana knjiga u ovoj konferenciji se >> pojavila u knjižarama: > > Znaš li cenu? Nadam se da cena nije prevelika, mada ovakva > knjiga sudeći po tvojoj recenziji u R110 zaslužuje sve ma > koliko da košta B). U pretplati (pre nego što je izašla) bila je 70 n.din, sada je nešto veća, ali i dalje dvocifrena, koliko znam. Znam da će autor prodati na prezentacijama određeni broj primeraka po nižeoj ceni od prodajne, tj. po ceni bliskoj pretplatnoj. Ako nekom to dovoljno znači, može da ga kontaktira na njegovu elektronsku adresu i vidi može li doći do jednog od tih primeraka i van prezentacija. Stvarno nisam imao predstavu da sam toliko nahvalio knjigu. Vrlo sam precizno naveo i polazne materijale koji su korišćeni za knjigu, pa ko ima sve te knjige (i uspeva i da ih pročita -- ja priznajem da nikada nisam "izbistrio" sve detalje Annotated Reference Manuala). žinjenica je da je to pravo autorsko delo, što je kod nas u poslednje vreme retka pojava, i da je vrlo iscrpna i da se stvarno može koristiti kao referenca. žesto je razumljivija i od Strostrupove knjige (sve ovo moram da istaknem, jer će neko opet misliti da je to reklama, nije, stojim iza ovoga što sam rekao).
cpp.107 djelovic,
> P.S. Ima li OWL 4.5 te tabbed dialoge? OWL 4.0 ih nema :((( Nema, barem ih ja nisam video. Neko je ranije u ovoj konferenciji ostavljao VBX za tabbed dijaloge, mozda da ga potrazis i probas? Nezavisno od toga, ne vidim zasto je toliki problem napraviti nekakvu tabbed kontrolu, recimo preko _ownerdrawn_ listbox-a? Cini mi se da je to posao od cca. sat vremena.
cpp.108 bulaja,
**** new file **** MSDOS - R:\C ---------------------- ddjcpp zip 59977 Dr. Dobb's Sourcebook of C++ Programming (Jul/Aug 1995) 1 file(s) 59 kb DR. DOBB'S SOURCEBOOK OF C++ PROGRAMMING JULY/AUGUST 1995 PARSER.ASC Title: A GENERIC PARSING ENGINE IN C++ Keywords: C++ PARSING Published source code accompanying the article by Todd D. Esposito and Andrew K. Johnson which presents a generic parser which requires no specific knowledge of the source language, and is independent of the underlying application. Also see PARSER.ZIP. PARSER.ZIP Title: A GENERIC PARSING ENGINE IN C++ Keywords: C++ PARSING Unpublished source code accompanying the article by Todd D. Esposito and Andrew K. Johnson which presents a generic parser which requires no specific knowledge of the source language, and is independent of the underlying application. Requires PKUNZIP.EXE to extract. AARRAYS.ASC AARRAYS.ZIP Title: ASSOCIATIVE ARRAYS IN C++ Keywords: C++ ARRAYS Published source code accompanying David Weber's article on associative arrays in C++. With associative arrays, you can create a database indexed by a single unique text key that is both fast and space efficient. David presents his templatized version, which handles objects, pointers to objects and pointers to functions, deep copying, and more. Also see AARRAYS.ZIP AARRAYS.ZIP Title: ASSOCIATIVE ARRAYS IN C++ Keywords: C++ ARRAYS Unpublished source code accompanying David Weber's article on associative arrays in C++. With associative arrays, you can create a database indexed by a single unique text key that is both fast and space efficient. David presents his templatized version, which handles objects, pointers to objects and pointers to functions, deep copying, and more. Requires PKUNZIP.EXE to extract. DCE.ASC Title: A C++ FRAMEWORK FOR DCE THREADS Keywords: C++ DCE DISTRIBUTED COMPUTING CLIENT-SERVER Published source code accompanying Michael Yam's article on DCE threads ("pthreads") which allow you to create multitasking applications under UNIX. But with more than 50 function calls, programming with the DCE API is not trivial task. Michael's class library will take the pain out your next pthread project. STLCPP.ASC Title: PROGRAMMING WITH THE STANDARD TEMPLATE LIBRARY Keywords: C++ STL Published source code examples by Thomas Keffer in his article on the C++ Standard Template Library. BSP2.ASC Title: RAMBLING IN REAL TIME COLUMN Keywords: GRAPHICS REAL-TIME 2-D BSP by Michael Abrash Published source code accompanying Michael Abrash's column on BSP trees and graphics programming. STRING.ASC Title: A C++ PORTABLE STRING CLASS Keywords: C++ STRING CLASS Published source code accompanying William Hill's which presents a generic, reusable string code that is portable across platforms.
cpp.109 madamov,
> Stvarno nisam imao predstavu da sam toliko nahvalio knjigu. Nisi previše nahvalio, kada se stavim u poziciju običnog čitaoca koji te ne poznaje, samo si izneo informaciju, deo svog mišljenja i dao preporuku kojima treba verovati (u normalnim zemljama je to normalno, tj. ako Andy Ihnatko napiše nešto u MacUser-u onda to treba uvažavati). Kako te i lično poznajem i pretopstavljam da dosta dobro znam čime se baviš i kako to radiš, to u mom slučaju još dobija na težini tako da ću knjigu sigurno kupiti samo na osnovu tog teksta.
cpp.110 varsic,
Sto pises po dve iste poruke ? Vlada :)
cpp.111 iznogud,
:: Nisam siguran ni da sam knjigu "hvalio do neba", baš sam pokušao da :: o njoj pišem kao što bih pisao i o svakoj drugoj: pogledaj tekst: Da, ali si praktično celu 'školu...' (dakle, mesto gde se priča o malim cakama jezika) podredio prikazu knjige. No, nisam ti to uzeo za zlo, i malo si promašio poentu. Evo kako ja vidim celu stvar: okreni - obrni, ti si jedini čovek koji poslednjih meseci piše o C++. Ergo, imaš neki kredibilitet, što je i potvrđeno time što je tvoje mišljenje navedeno u propagandnom materijalu MK. Iza svakog kredibiliteta stoji nepristrasnost, i upravo sam ti na to i skrenuo pažnju: euforija u tvojoj poruci je mogla da poljulja moje (a i još nečije) poverenje u gorepomenuti kredibilitet. Uostalom, na istoj smo strani. Ma koliko se C++ u svetu nametnuo kao vodeći jezik za 'teške poslove', kod nas je stanje takvo da ljudi kažu 'jeste, čuo sam da je to dobro', i nastavljaju da programiraju u C-u. Pre neki dan se u cccc mogla pročitati poruka čoveka koji radi u K&R C-u(?!), a ako pokušaš ljudima da kažeš da treba da pređu na novije verzije kompajlera, svi kriknu zbog 'enormnih resursa' koji taj kompajler zahteva. 'Pa dobro, ali šabloni, izuzeci...' 'nema veze ionako to i ne koristim'. Jesi li imao ovakve slučajeve? U takvim situacijama dobra knjiga o C++ može samo da popravi stvar. Još ako se ta knjiga dobro proda, i uveri izdavače da vredi ulagati u knjige o toj temi (i naše i strane) onda takav projekat treba podržati iz sve snage. Naravno, sa stilom, a ne besomučnim i euforičnim hvalama. BTW, između ostalog i zahvaljujući sadržaju koji si izvoleo objaviti ;) knjiga je preporučena već na dva mesta od strane moje malenkosti ;))))) Dugujem ti i izvinjenje: ne znam kako sam prevideo da ti nudiš SAMO sadržaj. Razumeo sam da želiš da deliš celu knjigu za dž. Posipam se pepelom.
cpp.112 iznogud,
:: Nema, barem ih ja nisam video. Neko je ranije u ovoj konferenciji :: ostavljao VBX za tabbed dijaloge, mozda da ga potrazis i probas? Mislim da sam probao tu kreaciju ;) i nije baš na mene ostavila neki utisak :( :: Nezavisno od toga, ne vidim zasto je toliki problem napraviti nekakvu :: tabbed kontrolu, recimo preko _ownerdrawn_ listbox-a? Cini mi se da je to :: posao od cca. sat vremena. Naravno da nije problem. Šta više, po primerima koji dolaze uz BC++ 4.0 ima neki programčić koji glumi ProgMan i ima ugrađenu neku varijaciju na tabbed kontrolu. Problem je u tome što će verovatno u nekoj od sledećih verzija OWL-a biti ubačena tabbed kontrola, te će ispasti da sam džabe džedžao ispred ekrana, umesto da sam gonio kugle po stolu nakiksanim štapom ;)
cpp.113 driks,
Jedno pitanjce: - Ako se staticki clanovi klase inicijalizuju ovako: int ImeKlase::promenljiva=0; // npr. Da li je moguce(i kako) izvrsiti inicijalizaciju staticke strukture? - Npr: ^^^^^^^^^^^^^^^^^^ class ImeKlase { protected: struct info { int i1; int i2; }; static struct info stinfo; }; P.S. sve sam pokusao pa neide :((( dragan
cpp.114 janko,
> :: Nisam siguran ni da sam knjigu "hvalio do neba", baš > sam pokušao da :: o njoj pišem kao što bih pisao i o > svakoj drugoj: pogledaj tekst: > > Da, ali si praktično celu 'školu...' (dakle, mesto gde se > priča o malim cakama jezika) podredio prikazu knjige. Jedan od nastavaka škole (4) bio je u potpunosti posvećen *najbitnijim* knjigama za C++, uopšte, sa posebnim osvrtom na knjige izdate kod nas. Obrađene su Strostrupove knjige (oba izdanja!), Laslov odličan prevod, obe K&R knjige, tragični prevod drugog izdanja... Poslednji nastavak je prikazao knjigu Milićeva, prikazao u par rečenica i The Annotated Reference Manual, (po meni, obe knjige su morale da se pomenu) i intenzivno se bavio novim nacrtom ISO standarda jezika C++ (u stvari, stubac i po, od tri, je u stvari na temu novog nacrta!) Ni o čemu od toga do sada nije moglo da se pročita bilo gde u našoj računarskoj štampi, pa mislim da vredi! > No, nisam ti to uzeo za zlo, i malo si promašio poentu. > Evo kako ja vidim celu stvar: okreni - obrni, ti si jedini > čovek koji poslednjih meseci piše o C++. Nije baš tako. Naprotiv, otkako pišem u Računarima, čini mi se da se još nekoliko autora je na razne načine bavilo jezikom C++. Bio je poseban članak o template mehanizmu, Berberski piše seriju članaka o novom nacrtu standarda (iako nisam *baš* oduševljen njegovim pristupom, ako smem da primetim: piše o razlikama u odnosu na ANSI C (!!!) i kao da će imati na raspolaganju hiljadu nastavaka za tu temu - tempo koji više odgovara knjizi nego člancima (sindrom Duško Savić) :( (Ej, čarko, ovo je najdobronamernija kritika!)(Džabe, nije na Sezamu))... i tako... > BTW, između ostalog i zahvaljujući sadržaju koji si > izvoleo objaviti ;) knjiga je preporučena već na dva mesta > od strane moje malenkosti ;))))) Znači li to da je još nisi video? Preporučuješ drugima pre nego sebi? :) Bez obzira, drago mi je, sadržaj, dakle, ipak nije uzaludno okačen!
cpp.115 djelovic,
Moze li neko da na Sezam prebaci Standard Template Library sa anonimnog FTP-a butler.hpl.hp.com? Radi se o biblioteci kontejnerskih klasa i rutina koja je skoro uvrstena u ANSI C++.
cpp.116 iznogud,
:: Znači li to da je još nisi video? Preporučuješ drugima pre nego sebi? :) :: Bez obzira, drago mi je, sadržaj, dakle, ipak nije uzaludno okačen! Verovatno je neću kupiti, pošto je (ipak) udžbenik C++-a, a tako nešto mi ne treba. Naravno, upotrebljiva je i kao referenca jezika, al' dok je tu Stroustrup (sec. ed.), računam da bi to ipak bilo udvajanje informacija ;) P.S. Kad već pričamo o tome... Šta cenjeni auditorijum misli, da li je naše tržište sazreo i za knjige koje *nisu* udžbenici, i koje se bave onim što je do sada samo obrađivano po raznim poglavljima, tj. teorijskim pristupom OO dizajnu i terijom programiranja u OO jezicima uopšte? Naravno, knjiga o kojoj pričamo se bavi (između ostalog) i time, ima nečeg od toga i kod Stroustrupa, al' ja bih radije da vidim celu knjigu namenjenu ljudima koji su već naučili sintaksu C++-a, i nebi da otkrivaju toplu vodu. Ako neko ima veze u Mikro Knjizi, neka predloži ovakav projekat. Već imaju jednog pretplatnika ;)
cpp.117 madamov,
> Ako neko ima veze u Mikro Knjizi, neka predloži ovakav projekat. Preneću im. B) Nemam vezu, imam sajlu. B)