cpp.2sikima,
Potrebna knjiga C++ od Lipmana.
Moguc svaki dogovor.
cpp.3nradeta,
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.4jkpbvk,
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.5omega,
Ţ Dali postoji mogucnost linkovanja EGAVGA.BGI drajvera u exe fajl ili bilo
BGIOBJ.
cpp.6maksa,
>> 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.7galimpic,
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.8vlador,
> 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.9janko,
> /* 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.10jkpbvk,
>< 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.11jkpbvk,
<> 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.12evlad,
>> 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.13maksa,
>> 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.14vlador,
> 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.15jkpbvk,
[]| 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.16maksa,
>> 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.17bigbrada,
*>> 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.18vitez.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.19jkpbvk,
||| Probao SVGABGI iz dir-a ?
Bih da sam ga imao ali ga nema uz BC++ 3.1,
dakle ako ga posedujes posalji ga.
cpp.20maksa,
>> Bih da sam ga imao ali ga nema uz BC++ 3.1,
>> dakle ako ga posedujes posalji ga.
Sezam, DRIVERS dir, SVGABG50.ZIP.
cpp.21jlazor,
Help : bilo kakav prirucnik za koriscenje BC++ 4.0
(srpsk(srpski) .
H Hvala .....
cpp.22maksa,
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.23wizard,
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.25mkaralic,
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.26zdobric,
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.27vcalic,
>> Dakle javite se ako ste zainteresovani, pa da pitamo Dejana šta misli.
Zainteresovani smo :)
Vlada
cpp.28maksa,
>> Dakle javite se ako ste zainteresovani, pa da pitamo Dejana
>> šta misli.
Javljamo se. :)
cpp.29pedjak,
> Dakle javite se ako ste zainteresovani, pa da pitamo Dejana šta
> misli.
Još jedan :)
cpp.30omega,
Ţ Dakle javite se ako ste zainteresovani, pa da pitamo Dejana sta misli.
Javljam se i ja :)
cpp.31dejanr,
>> 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.33dejaan,
Kako se, u Borland C++ 3.1, pise help za OWL aplikacije, tacnije *.hpj
fajlovi?
cpp.34vcalic,
>> 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.35djelovic,
> 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.37dejaan,
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.38bulaja,
│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.39dejaan,
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.40aleck,
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.41vcalic,
>> 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.42bceklic,
> 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.43aleck,
>> 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.44dejaan,
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.45cinkler,
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.47sikima,
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.49janko,
> 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.52maksa,
>> 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.53sikima,
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.54cosmo,
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.55mkaralic,
> 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.56zstef,
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.57drpr,
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.58rmarjan,
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.59vlaslo,
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.60cosmo,
>>... 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.61msavkovic,
###>> 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.62maksa,
>> 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.63rambo,
> 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.64mkaralic,
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.65mkaralic,
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.66dperkovic,
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.67cosmo,
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.68djelovic,
> 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.69madamovic,
> 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.70cosmo,
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.71iznogud,
:: 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.72cosmo,
>> Template-ovi primaju argumente bilo kog tipa. Baci source,
>> pa da vidimo gde gresis.
Evo sourcea!!!
templ.hcpp.73djelovic,
> 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.74cosmo,
>> Baci ovde deklaraciju klase i definiciju funkcije PutIn pa da pogledamo.
Source je vezan za (cinimi se ) poruku 9.72!!!
cpp.75sikima,
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.76djelovic,
> 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.77cosmo,
>> 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.hcpp.78cosmo,
Zar niko ne zna odgovor ?? :((
cpp.79driks,
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.80jasicp,
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.81janko,
> 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.82driks,
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.83driks,
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.zipcpp.84maksa,
>> 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.86cosmo,
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.87djelovic,
> 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.88cosmo,
>> ::EnableMenuItem(hMenu, CM_FILESAVE, MF_GRAYED | MF_BYCOMMAND);
na zalost i ovako mi vraca vrednost -1 :((
cpp.89iznogud,
:: - 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.90djelovic,
> 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.91omega,
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.92djelovic,
> 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.93mkaralic,
> 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.94omega,
Ţ> 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.95djelovic,
> 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.96janko,
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.97spantic,
> 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.98madamov,
> 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.99iznogud,
:: 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.100iznogud,
:: 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.101spantic,
> 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.102mileusna,
>> 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.103ikordic,
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.104sikima,
> 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.105janko,
> 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.106janko,
>> 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.107djelovic,
> 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.108bulaja,
**** 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.109madamov,
> 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.110varsic,
Sto pises po dve iste poruke ?
Vlada :)
cpp.111iznogud,
:: 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.112iznogud,
:: 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.113driks,
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.114janko,
> :: 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.115djelovic,
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.116iznogud,
:: 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.117madamov,
> Ako neko ima veze u Mikro Knjizi, neka predloži ovakav projekat.
Preneću im. B) Nemam vezu, imam sajlu. B)