cpp.1toca,
HELP!
Staker mi je uništio DPMIMEM.DLL iz BC 3.1, pa bih zamolio neku dobru dušu
da mi dotični fajl okači na mail, da ne gnjavimo ostale korisnike.
Unapred zahvalan,
Toca
cpp.2.sima,
Evo ti ovdi da se ne šalje više puta.
dpmimem.zipcpp.3driks,
subject: TV
Da lije neko mozda resio problem ubacivanja helpa u TV aplikacije?
Naime, primer helpa dao je Borland ( TVDEMO.PRJ) ali nesto u tom primeru ne
valja, jer nakon aktiviranja helpa sistem padne, uz neku poruku o gresci
u fajlu NEW.CPP.
P.S. upravo sada sam skinuo patch za NEW operator sa Sezama, pa cu da vidim
da li je u tome problem.
p.S.2. ako nije u pitanju patch za NEW, zna li neko sta je?
dragan
cpp.4visnja,
> P.S. upravo sada sam skinuo patch za NEW operator sa Sezama, pa
> cu da vidim da li je u tome problem.
>
> p.S.2. ako nije u pitanju patch za NEW, zna li neko sta je?
Mozda ti mogu pomoci, kazem mozda jer ja radim u BP7.0, takodje TV.
Helpovi mi lepo rade, mozda ovo zvuci banalno, ali... :
Jesi li registrovao help sa RegisterHelpFile?
Greska koja ti se javlja? KOja je? Za vreme kompajliranja ili je Run Time?
cpp.5mmitrovic,
Uz originalni Borland C++ se dobija poster sa hijererhijom klasa
za classlib, owl i tv.
Nešto takvo bi mi trebalo, pošto je ono u helpu totalno
neorganizovano. Najbolje bi bilo u e-formi da mogu da štampam
na laseru, ako ne da se dogovorimo da pogledam dotične dokumente.
cpp.6driks,
>>>> P.S. upravo sada sam skinuo patch za NEW operator sa Sezama,
>>>> pa cu da vidim da li je u tome problem.
>>>>
>>>
>>> Mozda ti mogu pomoci, kazem mozda jer ja radim u BP7.0,
>>> takodje TV. Helpovi mi lepo rade, mozda ovo zvuci banalno,
>>> ali... :
>>>
>>>
>>> Greska koja ti se javlja? KOja je? Za vreme kompajliranja ili
>>> je Run Time?
Greska se javjala u programu. Kada se u nekom trenutku pritisne "F1", pokaze
se prozor sa helpom, ali na <ESC> se racunar onesvesti (uz
"Assertion Failure..." ili tako nesto).
Ali patch-ovanje je USPELO i sada sve dobro fercera.
>>> Jesi li registrovao help sa RegisterHelpFile?
Jok ;)
dragan
cpp.7janko,
> Uz originalni Borland C++ se dobija poster sa hijererhijom
> klasa za classlib, owl i tv.
> Nešto takvo bi mi trebalo, pošto je ono u helpu totalno
> neorganizovano. Najbolje bi bilo u e-formi da mogu da
> štampam na laseru, ako ne da se dogovorimo da pogledam
> dotične dokumente.
Ono u helpu je identično onome na papiru. Dakle, već imaš elektronski
oblik.
cpp.8mmitrovic,
Imam malo problema sa streamovanjem objekata sa/na disk.
Kako da izvedem da mi se instanca kreira ucitavanjem sa diska umesto
poreko standardnih konstruktora (na primer hocu da ucitam tcollection
naslednika sa svojim podatcima). uspeo sam da snimim objekat na disk
preko write metode, medjutim ne mogu da pridjem read metodi da ga ucitam.
Kako da to izvedem?
Hps koristio sam ifpstream i ofpstream objekte za pristup streamu na disku.
dakle, kako da mu namestim konstruktor koji bi ifpstream pozivao da ucita
sebe sa diska? ne znam da li sam bio jasan?
Hps2 pisem online pa je malo teze za citranje, sory.
cpp.9kcurcic,
> Kako da izvedem da mi se instanca kreira ucitavanjem sa diska
> umesto poreko standardnih konstruktora (na primer hocu da
> ucitam tcollection
Tesko. Mozda da nasledis klasu koju si streamovao na disk
novom koja prvo inicijalizuje svoj parent, a zatim ga u konstruktoru
pomocu read metoda ucitava. Mislim da drugacije nije moguce.
Mada, ne znam ni da li je ovako moguce ;)
cpp.10saxon,
Saljem vam jedan svoj program koji se dopao mojim kolegama sa posla: sluzi za
analiziranje prostora koji na hard disku zauzimaju razliciti fajlovi i
direktorijumi. Ko zeli moze da dobije i sors (BC 4.02 + OWL 2.0)
dskspace.zipcpp.11maksa,
>> Saljem vam jedan svoj program koji se dopao mojim kolegama sa
>> posla: sluzi za analiziranje prostora koji na hard disku
>> zauzimaju razliciti fajlovi i direktorijumi.
Super je, ako misliš da ga proširuješ imam par predloga:
- Da se doda pie chart prikaz (može polukrug kao u DFE-u za DOS)
- Da pokazuje koliki je slack, odn. koliko je mesta stvarno zauzeto.
cpp.12saxon,
└─┐ >> Saljem vam jedan svoj program koji se dopao mojim kolegama sa
┌─┘ >> posla: sluzi za analiziranje prostora koji na hard disku
└─┐ >> zauzimaju razliciti fajlovi i direktorijumi.
┌─┘
└─┐ Super je, ako mislis da ga prosirujes imam par predloga:
┌─┘
└─┐ - Da se doda pie chart prikaz (moze polukrug kao u DFE-u za DOS)
┌─┘ - Da pokazuje koliki je slack, odn. koliko je mesta stvarno zauzeto.
└─┐
Thanks, radim na novoj verziji, a sve primedbe su dobrodosle.
cpp.13szdravko,
rz
B00000000000000
÷╔rH|0
cpp.14szdravko,
rz
B00000000000000
Evo jednog pitanja.
Imam klasu X i njene naslednike A, B, C itd. U programu deklarisem niz
pokazivaca tipa X* objekt[nesto]. Objekti se dizu u jednom switch-u i mogu biti
tipa A, B, ... (naslednika klase X).
U programu punim strukturu Y, a nacin punjenja definisan je velicinom Z, i za
to se koristi funkcija puni(STRUCT* Y, int Z), dakle
#include svasta.h...
void main(void)
{
X* objekt[nesto];
...
... dizanje objekata
...
for(i=1;i<=nesto;i++)
{
objekt[i]->puni(Y, Z);
}
...
}
Da bi ovo dobro radilo, potrebno je, dakle, da "void puni(STRUCT* Y, int Z)"
bude virtuelna funkcija. Sta je problem? Velicina Z sadrzana je u klasama
naslednicama i drukcija je za svaku od njih! Dakle:
1. koliko razumem mora se pisati
class X {
...
public
virtual void puni(STRUCT* Y, int Z);
};
i posle definisati X::void puni(STRUCT* Y, int Z).
2. ako sad recimo kazem
class A : public X {
...
public
void puni(STRUCT* Y);
};
ovo ne drzi vodu, jer funkcije X::void puni(STRUCT* Y, int Z) i A::void
puni(STRUCT* Y) imaju razlicit broj argumenata!
3. ako pak recimo kazem
class A : public X {
...
public
void puni(STRUCT* Y, float Z);
};
compiler daje warning da float Z nije upotrebljeno nigde u funkciji. Ovo se,
naravno, moze prevazici pomocu "#pragma argsused" u BC++-u u kome radim, ali
mi nesto nije bas najelegantnije. Moze se prevazici i tako da se uvede neka
"dummy" promenljiva u A::void puni(STRUCT* Y, float Z), pa da se njoj dodeli
vrednost Z, ali mi se ni to ne cini bas najelegantnijim.
4. formiranje funkcija tako da primaju isti broj argumenata nije bas u duhu
ovog problema, a kako bese kazu "u C++ se treba baviti resavanjem problema,
a ne pisanjem programa" (B. Eckel).
Unapred hvala na odgovorima. Posebni pozdrav za Iznoguda, Maksu i Saxon-a
(pozdravljam vas u abecednom poretku, da ne bude uvrede i zabune!).
Pz, :)!
cpp.15djelovic,
> 4. formiranje funkcija tako da primaju isti broj argumenata nije bas u
> duhu ovog problema, a kako bese kazu "u C++ se treba baviti resavanjem
> problema, a ne pisanjem programa" (B. Eckel).
1. Možeš da napraviš funkciju puni da kao drugi argument prima void* na
parametar.
2. Možeš da sve tri klase Z izvučeš iz jedne zajedničke, TataZ, pa da u
funkciji "puni" primaš const TataZ &. Ovo rešenje nudi nešto više
type safety-ja.
3. Možeš da reorganizuješ program :).
cpp.16iznogud,
:: compiler daje warning da float Z nije upotrebljeno nigde u funkciji. Ovo
:: se, naravno, moze prevazici pomocu "#pragma argsused" u BC++-u u kome
:: radim, ali mi nesto nije bas najelegantnije. Moze se prevazici i tako da
:: se uvede neka "dummy" promenljiva u A::void puni(STRUCT* Y, float Z), pa
:: da se njoj dodeli vrednost Z, ali mi se ni to ne cini bas
:: najelegantnijim.
Uz ogradu da možda nisam dobro razumeo šta si hteo da kažeš...
U principu ti nešto škripi oko koncepcije, čim ti funkcije koje _treba_
da izgledaju isto _ne izgledaju_ isto.
Ako ti je baš stalo da ostane kako si napisao, a smeta ti poruka kompajlera,
možeš da deklarišeš funkcije na sledeći način:
virtual void X::puni(STRUCT* Y, float=0) {};
void A::puni(STRUCT* Y, float=0) { ... };
void B::puni(STRUCT* Y, float Z) { ... };
Samo 'float' se zove 'placeholder', i predstavlja (polu)regularan način
rešavanja ovakvih problema.
Drugo rešenje bi bilo, recimo, promeniti strukturu STRUCT tako da u sebi
sadrži i parametar Z. A::puni(), naravno, ignoriše taj parametar. Ne
znam koliko je ovo prihvatljivo za tvoj program?
PS Hvala na pozdravu, al' moram priznati da se uvek smrznem kad vidim
da je neko moj user napisao sa velikim početnim slovom. To mi, hvala Bogu,
nije ni ime ni oznaka političke težnje... ;))))))))))
cpp.17szdravko,
Objasnjenje cu prouciti, a vec sam i sam poceo da prevazilazim problem. Hvala!
Sto se tice, poslednjeg pozdrava, nece se ponoviti, ne brini.
cpp.18toca,
Pisem, jedan program i imam problem.
Kako da ubacim novi element u kolekciju podataka povezanu sa listbox-om.
Koristim BC3.1 i TurboVision 1.0 (onu koja se dobija uz njega)
Kolekcija koju sam povezao sa listbox-om je potomak kolekcije
TStringCollection.
lBox->list()-atInset( list()->count, element ) ne radi.
Kompajler javlja TNSSortedCollection is not accsesible.
Molim neku dobru dusu da mi sto pre odgovori, jer mi je hitno.
Toca
cpp.19d.popovic,
Imam nekoliko pitanja u vezi sa Visual C-om.
1.) kolika je kvalitativna razlika izmedju verzija 1.x i 2.x . Sem toga me
interesuju iskustva u radu sa verzijom 2.0
2.) konkretan problem: kako se u okviru dijaloga moze pozvati drugi dijalog
koji ce prijaviti gresku. Ako se prvi dijalog pozove sa DoModal(), ne postoji
mogucnost prekida unosa (bar koliko sam uspeo da otkrijem), da bi se pozvao
dijalog sa porukom o gresci.
3.) kako se realizuje program koji se sastoji samo iz jednog dijaloga. Da li se
i ovom prilikom mora ici kroz proceduru definisanja projekta prilikom se
kreiraju i klase tipa CView, CDoc.. koje mi u ovom slucaju nisu potrebne.
Trenutno radim na Visual C verzija 1.0
Na koji nacin se po nekoj pristupacnoj ceni moze doci do verzije 2.0 ?
Unapred hvala na odgovorima.
cpp.20djelovic,
> 1.) kolika je kvalitativna razlika izmedju verzija 1.x i 2.x . Sem toga me
> interesuju iskustva u radu sa verzijom 2.0
Sa verzijom 2.X se relativno komfornije radi, a i jezik je bitno proširen
tako da podržava izuzetke i još neke "sitnice".
> 2.) konkretan problem: kako se u okviru dijaloga moze pozvati drugi
> dijalog koji ce prijaviti gresku. Ako se prvi dijalog pozove sa DoModal(),
> ne postoji mogucnost prekida unosa (bar koliko sam uspeo da otkrijem), da
> bi se pozvao dijalog sa porukom o gresci.
?
Pa valjda se samo kao "reakcija" na neki događaj pozove sledeći dijalog, i
time je posao završen?
> 3.) kako se realizuje program koji se sastoji samo iz jednog dijaloga. Da
> li se i ovom prilikom mora ici kroz proceduru definisanja projekta
> prilikom se kreiraju i klase tipa CView, CDoc.. koje mi u ovom slucaju
> nisu potrebne.
Ne mora se koristiti Doc/View paradigma, dovoljno je definisati klasu koja
predstavlja dijalog, i onda u CApp::InitInstance reći nešto tipa:
BOOL CTestApp::InitInstance()
{
CTestDlg dlg;
m_pMainWnd = &dlg;
...
Mada, po mom iskustvu, programe koji se sastoje od samo jednog dijaloga nije
naodmet pisati direktno preki Windows API-ja, bez MFC-a ili OWL-a. Obe ove
hijerarhije klasa daju bitan "overhead" u bajtovima, a da za ovako male
programe ne doprinose nešto bitno na preglednosti.
cpp.21mcar,
Evo jednog pitanja:
Da li bi neko mogao da da kratki uporedni prikaz najnovijih Microsoftovih i
landovih cpp kompajlera. Mislim, prednosti i nedostaci.
Unapred zahvalan.
Marko
cpp.22saxon,
> Da li bi neko mogao da da kratki uporedni prikaz najnovijih
> Microsoftovih i Borlandovih cpp kompajlera.
Ne znam ko bi na ovo pitanje mogao da da merodavan odgovor.
Malo je onih koji su probali "the best of both worlds" radeci
zaista ozbiljne programe za ozbiljne pare.
Licno sam vec godinama veran Borlandovom kompajleru zato
sto me je Microsoft C++ 7.0 gadno uvredio sa svojim
PWB-om (kilavo, sporo). Od tada se planeta mnogo puta
okrenula i stvari su se sigurno izmenile.
To cut a long story short:
Za iskusnog korisnika pravo je samoubistvo da nakon grdnih
godina iskustva tek tako predje na rivalski proizvod. Neko
ko zna da upotrebi vise od polovine objekata iz Borlandovog
OWL-a mora da bude veliki mazohista pa da predje na
potpuno nekompatibilan Majkrosoftov MFC zbog dva-tri
interesantna fazona... Oni ce ionako biti ukljuceni u OWL
prvom narednom prilikom. Sa druge strane, pocetnik moze da
uzme sta god hoce. Najbolje ono za sta ima sto kompletniju
dokumenatciju. Mozda sam bio malko grub prema vatrenim
obozavaocima Borlanda ili MFC-a ali bi svaki strasni odgovor
u stilu "samo to i nista drugo" nepotrebno izazvao brdo replika.
PS> Caare Christian tvrdi da je Borland definitivno bolji,
pre godinu-dve PC Magazin je etiketu "Editors Choice"
prilepio na Microsoftov Visual C++ 1.0, a nedavno na
Watcom C++ 10.0 (ako se dobro secam)... Kada svi proizvodjaci
izbace svoj upgrade za Win95, na red ce doci neko cetvrti...
Umereno navijam za Borland.
cpp.23pyc.guy,
Watcom C/C++ 10.5 & Watcom SQL masina ...
Namera nam je da u gornjoj kombinaciji pisemo 1an veeliki i pametan program
dataBase orijentacije...
Imamo iskustva samo sa Clipper-om...
Treba nam covek sa Watcom iskustvom radi kursa i dalje saradnje...
P.S. Ubedi nas da je Power Builder Enterprise 4.0 for Win(95)
bolje/jednostavnije resenje...
IOK tim, Komgrap
cpp.24oper,
>>> 2.) konkretan problem: kako se u okviru dijaloga moze pozvati
>>> drugi dijalog koji ce prijaviti gresku. Ako se prvi dijalog
>>> pozove sa DoModal(), ne postoji mogucnost prekida unosa (bar
>>> koliko sam uspeo da otkrijem), da bi se pozvao dijalog sa
>>> porukom o gresci.
Ako sam te dobro razumeo, treba ti nešto kao TValidator iz
OWL. Ukoliko isti ne postoji u MFCu, ili ti iz drugih razloga
ne vrši posao, moraćeš da "hvataš" WM_KILLFOCUS poruke za
kontrole za koje koje ti treba kontrola unosa.
cpp.25pavlovicz,
Borland C++ problem sledeci
Unosim niz od n stringova i postavio sam da je
char a[10][20];
E sad, kad napravim dvostruku FOR petlju dobijem poruku
CANNOT CONVERT INT TO STRING.
Znaci potreban savet kako uneti niz od n stringova.
Preko matrice ili ?
10 x Thanks.
P.S.
Problem je malo vise banalan , ali nemogu više da se bakćem :)
cpp.26szdravko,
■˛Zastto unosis stringove char po char? Zar nije dovoljna jedna for petlja? Pz,
:).
cpp.27djelovic,
> char a[10][20];
> E sad, kad napravim dvostruku FOR petlju dobijem poruku
>
> CANNOT CONVERT INT TO STRING.
> Znaci potreban savet kako uneti niz od n stringova.
> Preko matrice ili ?
for (int i = 0; i < MAX_STRING; i++)
is.getline (a, MAX_LEN);
gde je "is" neki tok, deklarisan recimo kao:
ifstream is (Ć"DATOTEKA.DATĆ");
cpp.28pavlovicz,
>■ ˛Zastto unosis stringove char po char? Zar nije dovoljna jedna for petlja?
> Pz, :).
To sam prvo probao.
char a[30];
..
for(i=0;i<10;i++)
{
cgets(a[i])
}
E sad počinju neki duhovi :)
Kad unosim stringove svaki drugi se ne vidi na ekranu , a kada ih
štampam dobijam sledeće :
# jedan
@ dva
*$ tri
itd.
O čemu se radi ?
Pozdrav,
Zoran.
cpp.29szdravko,
Ne znam tacno, ali postoji nekoliko varijanata koje vredi probati. Prvo uvedi
pomocni string pa STRCOPY u onaj koli zelis, ili SSCANF, probaj vec. Mislim da
tvoji probelmi poticu od \n i \0, odnosno karaktera za prelazak u novi red i
terminaciju stringa. Probaj da pre svakog sledeceg unosa izvrsis
fflush(stdin)
Hcime ces iz buffera tastature istresti sve, pa ti nece preskakati unos. Javi
sta si uradio. Takodje pogledaj temu cccc, jer je u poslednjih mesec dana bilo
price o scanf-u, pa je pominjan i problem preskakanja redova. Pz, :).
cpp.30znesa,
Pitanje:
Kako u MSVC 2.0 (MFC) uraditi nesto ovako:
File Records Exit Help
Opcija 1
Opcija 2 <- otvoriti prozor za Recordview
Opcija 3
cpp.31vasic,
> cgets(a[i])
>
> Kad unosim stringove svaki drugi se ne vidi na ekranu , a kada ih
> štampam dobijam sledeće :
>
> # jedan
> @ dva
> * $ tri
> itd.
> O čemu se radi ?
Radi se o tome da cgets() nije isto što i gets(), samo iz conio.h.
Kada zoveš cgets(str), str[0] treba da postaviš na maksimalnu dužinu
stringa, a u povratku ti on u str[1] stavi dužinu učitanog stringa. Sam
string počinje tek na str[2].
cpp.32vitez.koja,
#=> Znaci potreban savet kako uneti niz od n stringova.
char niz[X][Y];
int i;
for(i=0; i<X; i++)
gets(niz[i]);
cpp.33saxon,
Slicnu poruku sam vec poslao u pc.user.matematika ali...ajd' jos jedared.
Dakle, pojavila se IMSL C++ biblioteka. Fortran je mrtav, ziveo C++! Ima li
neko vec prve utiske koje bi zeleo sa drugima da podeli?
BTW, sta se danas moze naci na trzistu kada su u pitanju _ozbiljne_ matematicke
biblioteke za C i C++ (preskocite Numerical Recipes, nije lose ali o tome vec
sve znam)
cpp.34drpr,
-> Dakle, pojavila se IMSL C++ biblioteka. Fortran je mrtav,
-> ziveo C++! Ima li neko vec prve utiske koje bi zeleo sa
-> drugima da podeli?
Koliko je u MB velika ova biblioteka, kako može da se dođe do
nje i utisci?
cope
cpp.35pavlovicz,
> terminaciju stringa. Probaj da pre svakog sledeceg unosa izvrsis
> fflush(stdin)
> Hcime ces iz buffera tastature istresti sve, pa ti nece preskakati unos.
Postoji više vrsta ove naredbe ;)
Dali neko ima vremena da napiše, znači, kod za unos 10 stringova dužine
npr 30. karaktera, uz korišćenje naredbe CGETS.
100xThanks
cpp.36jpiri,
> BTW, sta se danas moze naci na trzistu kada su u pitanju _ozbiljne_
> matematicke biblioteke za C i C++ (preskocite Numerical Recipes, nije lose
Pogledaj 'proizvodni asortiman' Rogue Wave kompanije, oni
su bili pioniri u pisanju C++ klasa uopšte, a matematičkih
pogotovu.
cpp.37szdravko,
Izvini, da li znas ko od profi-ja ima takve stvari. Uglavnom svi imaju gomilu
igara, Windows aplikacija i svega i svacega, ali ne i specijalizovane stvari.
Hvala!
cpp.38djordjem,
>> 3.) kako se realizuje program koji se sastoji samo iz jednog
>> dijaloga. Da li se i ovom prilikom mora ici kroz proceduru definisanja
>> projekta prilikom se kreiraju i klase tipa CView, CDoc.. koje mi u
>> ovom slucaju nisu potrebne.
Visual C++ 2.0 ima u AppWizardu mogućnost da se generiše kostur
dialog-based aplikacije. Prebacivanje ovako dobijenog sorsa na
VC 1.5 sam probao, i radilo je. (VC 1.0 nisam nikad probao). Ako ništa
drugo, probaj ovako.
Verzija 2.0 jako lepo radi, ali na P5/90/24MB/WinNT mašini. Nema bog
zna šta novo, ali se nekako "brže" radi sa njom.
cpp.39jpiri,
> Izvini, da li znas ko od profi-ja ima takve stvari. Uglavnom svi imaju
> gomilu igara, Windows aplikacija i svega i svacega, ali ne i
Profija? Misliš pirata?
Niko.
Ja sve takve specijalizovane stvari naručujem iz USA.
cpp.40szdravko,
Mislim na njih, ali pű▀osto se na SEZAMU ne koriste ruzne reci, rekao sam ovako
kroz eufemizam. Iskreno, toliko sam novca potrosio oko doktorata, i tek cu, da
miřÚ t■˛řÚa■˛řÚkva vrsta izdatka uopste ne odgovara. Ne zaboravi, ja od ovoga
nemam pare, a i verovatno uskoro necu. Kad bih radio baze i sl., to bi bila OK
investicija. Kad bih izracunao koliko sam para dao, a koliko "zaradio" za 4
godine asistentskog poslařÚ, nisam siguran da bih uopste bio pozitivan! Neko bi
rekao: "Brate, sa 30 godina°─ mogao bi nesto i da radis, ;)". Pz, :).
cpp.41djelovic,
> MSDOS - R:\C
> ----------------------
> bcpplite a01 359453* Borland C++ Lite for DOS: probna verzija C++
> kompajlera
Bulajo, šta je bre ovo? :)
cpp.42bulaja,
││bcpplite a01 359453* Borland C++ Lite for DOS: probna verzija C++ kompajlera
│└───
│ Bulajo, šta je bre ovo? :)
└───
Izgleda neka osakaćena reklamna verzija BC++ odnosno TC++ kompajlera
(uključujući i IDE) za DOS. Nisam probao šta radi a šta ne, ali na prvi
pogled ponešto i radi :). Naravno ko ima the real thing, ovo mu treba
koliko i slika omiljenog konja dragog nam Bilija. :)
cpp.43kile,
>> Izgleda neka osakaćena reklamna verzija BC++ odnosno TC++ kompajlera
>> (uključujući i IDE) za DOS. Nisam probao šta radi a šta ne, ali na prvi
>> pogled ponešto i radi :). Naravno ko ima the real thing, ovo mu treba
>> koliko i slika omiljenog konja dragog nam Bilija. :)
Skinuo ja ovo, napisao "Hello world!", kompilirao i sve lepo radi.
Pokušam ja da program startujem iz dos-a, kad me preseče poruka:
This example program can only be run from within the IDE
:(((( Ispostavilo se da je za sve kriv C0S.OBJ koji se automatski
linkuje u bilo koji EXE koji linker napravi. Mogao bi neko malo
detaljnije da ispita o čemu se radi, ja bih mu bio veoma zahvalan.
cpp.44iznogud,
:: : (((( Ispostavilo se da je za sve kriv C0S.OBJ koji se automatski
:: linkuje u bilo koji EXE koji linker napravi. Mogao bi neko malo
:: detaljnije da ispita o čemu se radi, ja bih mu bio veoma zahvalan.
C0S.OBJ je standardni startup-modul koji se pakuje u svaki program
pisan u small modelu, bez obzira o kom Borlandovom kompajleru se radi.
Pokušaj da nađeš C0S.OBJ od nekog drugog (Borlandovog) kompajlera,
staviš ga u \lib\ dir, iskompajliraš ponovo i javiš nama rezultate ;)
cpp.45kile,
>> Pokušaj da nađeš C0S.OBJ od nekog drugog (Borlandovog) kompajlera,
>> staviš ga u \lib\ dir, iskompajliraš ponovo i javiš nama rezultate ;)
Dakle:
C0S.OBJ je iz Borland C++ 3.1.
A evo šta linker kaže:
Linker Error: Undefined symbol __nfile in module c0.ASM
Linker Error: Undefined symbol __exit in module c0.ASM
Linker Error: Undefined symbol __exitclean in module EXIT
:((
Ipak nije toliko jednostavno.
cpp.46drpr,
Haj,
ima li neko prekucane tekstove iz knjige Kaare Christian Borland C++
Tehnike Programiranja, izvinjavam se kucam online, mislim sorsove :))
Ako ih je neko kačio neka mi samo kaze broj poruke.
cope
cpp.47sasa.m,
>-> ima li neko prekucane tekstove iz knjige Kaare Christian
>-> Borland C++ Tehnike Programiranja, izvinjavam se kucam
>-> online, mislim sorsove :))
Pa imam ja celu disketu koju dobiješ uz knjigu.Kaži šta te
interesuje. Ne verujem da za presnimavanje tih sorseva
postoje nekakva autorska prava. Ovo kažem da mi ne bi brisali
poruku u zabludi ;))
cpp.48drpr,
-> interesuje. Ne verujem da za presnimavanje tih sorseva
-> postoje nekakva autorska prava. Ovo kažem da mi ne bi
-> brisali poruku u zabludi ;))
Mislim da ne podležu jer je za razumevanje svega toga potrebna
knjiga, koju imam ali nemam disketu. Zanima me u principu sve a
od kada su modemi na 14000 msilim da nije probem da to
prebaciš.Ako nemaš takav modem bar baci prvi primer za OWL
find.zip. Ja sam ovo sam prekucavao i neće da mi odradi neke
stvari tako da bi bio veoma sretan da ovo dobijem. U principu
me zanimaju samo stvari vezane za OWL programiranje, turbo
vizija me ne zanima.
cope
cpp.49djelovic,
> Pa imam ja celu disketu koju dobiješ uz knjigu.Kaži šta te
> interesuje. Ne verujem da za presnimavanje tih sorseva
> postoje nekakva autorska prava. Ovo kažem da mi ne bi brisali
> poruku u zabludi ;))
Slobodno pošalji, primeri iz knjiga su obično u javnom vlasništvu. Na kraju
krajeva, svako ko je kupio knjigu može i sam da ih - ukuca.
cpp.50saxon,
> stvari tako da bi bio veoma sretan da ovo dobijem. U principu
> me zanimaju samo stvari vezane za OWL programiranje, turbo
> vizija me ne zanima.
Watch out! Caare Christian u svojoj knjizi opisuje OWL 1.0 koji se
isporučuje uz BC3.1. Naredne verzije kompajlera podržavaju drastično
redizajnirani OWL2.0, što znači da se stari programi ne mogu prevoditi
bez značajnih intervencija u kodu. (Ima tu i neki utility, OWLCVT
valjda, koji može da pomogne. Ja sam sve ručno prepravljao). Prema
tome, ako se služiš novijim kompajlerom, moraćeš da se više posvetiš
primerima iz EXAMPLES direktorijuma... :(
cpp.51drpr,
-> bez značajnih intervencija u kodu. (Ima tu i neki utility,
-> OWLCVT valjda, koji može da pomogne. Ja sam sve ručno
-> prepravljao). Prema tome, ako se služiš novijim
-> kompajlerom, moraćeš da se više posvetiš
Ja tek počinjem da učim C++ i programiranje za Windows. Pošto
to radim onako za svoju dušu, ne mislim da je gubljenje vremena
radeći na OWL-u 1.0 . E sad pošto očekujem izdanje mikro knjige
o BC 4.5 možda, ako knjiga bude živopisna pređem na neki noviji
kompajler od 3.1, naravno ako to moja 386 sa 8MB može da
podnese.
cope
cpp.52djelovic,
Jeli neko video taj Visual +C++ 4.0?
cpp.53zdiv,
WATCOM C/C++ verzija 10.5 ?
Visual programer nece da radi.
Cuo sam da WATCOM ima neki patch.
Da li neko zna nesto o ovome , ili mozda ima ovaj patch!?
Da li je nko uspeo da pokrene Visual programer ?
cpp.54szdravko,
Imas li ti ideju kako resiti memorisjke probleme sa TV - sa Phar
Lapp-om ne radi!
cpp.55maksa,
>> Imas li ti ideju kako resiti memorisjke probleme sa TV - sa
>> Phar Lapp-om ne radi!
Možda da probaš neki BC/C++ 4.x + DOS Power Pack?
cpp.56szdravko,
Da li neko zna kako se najbolje uci sintaksa MAKEFILE file-ova.
Naime, vec duze koristim Borland-ove prroizvode, pa sam uglavnom
koristio IDE. Sada bih presao na WATCOM 10.0, pa moram da se naviknem
na komandnu liniju. Da li neko ima uputstva za WATCOM (samo da
kopiram)?
cpp.57plovput,
+đ Da li neko zna kako se najbolje uci sintaksa MAKEFILE file-ova.
+đ Naime, vec duze koristim Borland-ove prroizvode, pa sam uglavnom
+đ koristio IDE. Sada bih presao na WATCOM 10.0, pa moram da se naviknem
+đ na komandnu liniju. Da li neko ima uputstva za WATCOM (samo da
+đ kopiram)?
Nista lakse.
Umesto bcc sada ti je wcc (REAL mode) i wcc386 za Protected mode.
Inace, imas mnogo dobar HELP (koji je obimniji u 10.5 verziji mada je
dobar i u 10.0). Sto se tice MAKEFILE-ova imas primer mada nisu neke
velike razlike u odnosu na Borland.
cpp.58szdravko,
Da li postoji bitna razlika izmedju 9.5, 10.0 i 10.5? Zanima me samo
DOS extended? Da li znas nesto o DOS interface-u (GUI). Ima tekst u
racunarima o programu zarade i kaze pisan je u SQL-u. Ja uzmem SQL od
pirata, a unutra samo database engine?! Da li je to nesto sto stize
uz sam 10.0? Hvala unapred (hitno mi treba odgovor!).
cpp.59plovput,
+| Da li postoji bitna razlika izmedju 9.5, 10.0 i 10.5? Zanima me samo
+| DOS extended? Da li znas nesto o DOS interface-u (GUI). Ima tekst u
+| racunarima o programu zarade i kaze pisan je u SQL-u. Ja uzmem SQL od
+| pirata, a unutra samo database engine?! Da li je to nesto sto stize
+| uz sam 10.0? Hvala unapred (hitno mi treba odgovor!).
Verziju 9.5 nisam imao , 10.0 sam koristio duze vremena i razlike u
odnosu na 10.5 su u opsirnijem helpu i DOS/4GW extenderu kao i u nekim
sitnim bagovima (uglavnom za windows i OS/2) koji su otklonjeni u 10.5
verziji. O GUI interface-u ne znam nista a SQL ne ide uz Watcom vec se
uzima posebno, doduse ja sam instalirao Watcom samo za DOS tako da se
vise ne secam dal' je u setup-u bila i opcija za SQL mada sumnjam.
Evo dela promena a ostatak u fajlu uz poruku.
Major Differences from Version 10.0
New installation program
Visual Programmer for Windows (MFC) applications
MFC 3.0 support
Native C++ exception handling support
Improved language compatibility with Microsoft
Browser can now be used to browse C code
OS/2 3.0 Warp support
Toolkit for OS/2 1.3
Windows NT 3.5 support
Toolkit for Windows NT 3.5
Windows 95 (Chicago) support
Source Revision Control System hooks in editor
TCP/IP remote debug servers for OS/2 and Windows NT/95
In addition to these new features, we have also made a number of
improvements to the software.
changes.txtcpp.60mmitrovic,
Imam malih problema sa pisanjem DLLova preko CPP kompajlera. Dam mu
prototip (a posle i telo f-je):
int far _export test();
i kad prevedem sa C kompajlerom (Explicit exports only + No Underscore )
dobijam ono što mi treba (ime TEST (upcase) u resident tabeli) kako bi
ga posle učitao sa LoadLibrary i GetProcAdress funkcijama (ne koristim
IMPORT).
Problem se javlja kad primenim CPP kompajler (inače, koristim BC4.02)
koji mi u resident tabelu upiše ime test() sa sve zagradama i u downcase.
Drugi problem je što uopšte neće da se odazove na to ime već na
@test$qv gde ovo qv varira od vrste i broja parametara. Ovo mi nikako ne
odgovara, a ne znam kako da nateram kompajler da mi generiše ove nazive
kako meni odgovaraju. Verovatno ima fora, al ja ne znam za nju.
I ne recite mi da ubacim:
EXPORTS
TEST =@test$qv
u DEF fajl, jer mi ni to ne odgovara. :)
PS. Ovo ime, @test$qv, nisam pogađao već sam ga dobio sa impdef alatkom. :)
PS2. Nisam baš toliki manijak. ;)
cpp.61maksa,
>> i kad prevedem sa C kompajlerom (Explicit exports only + No
>> Underscore ) dobijam ono što mi treba (ime TEST (upcase) u
>> resident tabeli) kako bi ga posle učitao sa LoadLibrary i
>> GetProcAdress funkcijama (ne koristim IMPORT).
>>
>> Problem se javlja kad primenim CPP kompajler (inače, koristim
>> BC4.02) koji mi u resident tabelu upiše ime test() sa sve
>> zagradama i u downcase.
Project Options
Linker
General - Proveri da l' ti je čeknuto 'Case sensitive exports
and imports'
Dalje, probaj i sa Linker goodies opcijama za 16-bitni linker, i u
Entry/Exit Code opcijama za 16-bitni kompajler. Ovo je skroz napamet
al' ne košta da probaš.
Ovo važi za BC4.5, valjda je isto i u 4.02.
cpp.62mmitrovic,
Nije to u pitanju. Problem je u "manglovanju" imena koje C++ obavlja
kako bi omogućio overloading. Isključuje se u sorsu, dodavanjem
extern "C" u deklaraciju f-je. Naravno o ovome u HELPu ima samo dva reda
u okviru extern kome ovo nije primarna namena. :) Ovo sam našao u
e-knjizi o BC4.5 (originalna dokumentacija koja valjda stiže
na CDu).
Sada f-ja izgleda:
extern "C" int far _export test(); // pazi ovo :) sta sve ne mora da
// se napiše za izvoz f-je
Naravno, na overloading odmah zaboravite.
BTW, sad imam drugi problem gde knjiga ne pomaže ;)
Kako da se otarasim WEP (Windows Exit Procedure) f-je. Nju KERNEL poziva
kad god se DLL izbaci iz memorije, ali mi ona uopšte ne treba za DOS DPMI
DLL, samo mi zauzima memoriju. Tu f-ju inače u DLL ubacuje sam BC (kao,
da se ja ne mucim :( ) bez obzira na to da li sam je ja deklarisao ili ne.
Ima li leka?
cpp.63mmitrovic,
Il sam ja lud, il ovaj C++ (4.02) ima bagove u header fajlovima.
Dakle pisem DLL (DPMI16, Large) i koristim atoi funkciju. Ona se svodi
predkompjlerom na poziv atol funkcije i to je ok. Sad ide problem: atol
postoji u CWL.LIB i linker ukljuci CWL.LIB, al ne nadje funkciju. Znaci nesto
verovatno ne valja sa heder fajlovima, posto pri prevodjenju i linkovnju sa
ukljucenim underscorom (_) ispred imena funkcije linker nadje f-ju (_atol).
Heder fajl je inace STDLIB.h, a u njemu postoji vise prototipa za atol u
zavisnosti od nekih defines. Nisam uspeo da provalim koji se odnosi na moj
slucaj.
Ima li neki patch za hedere, ili moram da se zezam sa licnim prototipima?
cpp.64janko,
Ne smeš da prevodiš sa isključenim underscore. Ako sam te ukapirao
ti radiš upravo to?
Hederi su OK, i linkovanje nema veze sa hederima, hederi su tu
zbog kompajlera.
cpp.65szdravko,
Molio bih dobronamerne citatelje ove konferencije (i cccc) da me
upute gde mogu da dodjem do uputstva za WATCOM compilere (9.5, 10.0,
10.5). Hvala unapred!
cpp.67szdravko,
Evo pitanja! Koristim WATCOM 9.5 i 10.0 i stalno mi se javlja sledeci
problem.
Pri debugovanju RSI programa, WVIDEO i WD se zaglavljuju odmah pri
startovanju,
iako sam stavio WD /tr=RSI. Da li ovo ima veze sa instalacijom SET WD
i SET
DOS4GW? Sta je resenje?
Isto tako ako pri kompilaciji stavim wcl386 -c -d2 -ml, a pri
linkovanju
sistem = DOS, buni se da su mu obj-ovi 32-bitni, iako je lepo receno
da je
model LARGE!
Za one koje nervira sto WHELP menja video mode, evo resenja! Dobio
sam ga uz
katalog DUOSOFT-a ( pozdrav Marku i Ognjenu) , a pomaze kod svih
slicnih
kataloga (OGNJA, ...). Program je ogroman (59 bajtova).
Pozdrav i hvala unapred na odgovoru :).
vmode.comcpp.68tomislavr,
Sve, ili skoro sve ;) o Borland C++ 5.0 (sa njihovog Web Page-a).
Kratki tekstovi o IDE, debugerima, Java kompajleru itd. sa
dosta GIF-ova.
bc50info.zipcpp.69nenad,
Nove datoteke:
windows\program\*.*
------------------
bc50p1.zip 1532k ű Borland C++ 5.0 patch 1
bc50p2.zip 989k ű Borland C++ 5.0 patch 2
owlex.zip 62k ű Borland C++ 5.0 - OWL 5.0 Help file
bc50p1.zip
This patch makes a number of modifications to your Borland C++
5.0 installation. For details on the specific problems it solves,
please refer to the file BC50P1.TXT included in this archive.
Install this patch using PATCH.EXE version 3.10 or later. Version
3.20 is available below or on the BC++ 5.0 cd in the \SETUP\MFC32
directory.
bc50p2.zip
This second patch for Borland C++ 5.0 corrects inconsistent
behavior in a number of systems within the product. Details of
problems fixed are contained in BC50P2.TXT, included in this
archive. If you have version 5.0A (as shown in the Help|About
box), this patch may be applied directly. If you have version
5.0, you will need to apply the first patch before applying the
second. In order to apply this patch, you will need to download
PATCH.ZIP (or PATCH-NT.ZIP) from below. This patch file will not
work with any older version of the PATCH executable (including
the one on the BC++ 5.0 CDROM).
owlex.zip
This file is intended to patch the OWL 5.0 Help section.
(zahvaljujući tomislavr-u)
cpp.71benko,
Da li neko zna kako da u BorlandC++ 4.x (pod OWL-om) pobrišem prozore pod
Windowsima odnosno desktop i dobijem celu radnu površinu za svoj
program i izgled desktopa kao u Microsoftovim enciklopedijama.
Da li je to moguće regularno izvesti pomoću OWL-a?
Molio bih za što brži odgovor (hitno je).
Unapred hvala svima koji mi odgovore na ovo pitanje?
P.S. Verovatno će biti još pitanja.
cpp.72ivko,
To se radi tako sto izbrises atribute tvog prozora za
(ukljucivanje BORDER-a, gornje lajsne, tastera za MAXIMIZE i
MINIMIZE i zatvaranje pzozora (drugom recju sve) i maximizujes
prozor. Onda se prakticno stvara utisak da su tvoji
pzoroizbrisali WINDOWS DESKTOP. Drugi (hakerski nacin) nacin je
da kao HANDLE od tvog prozora stavis NULL i onda on pise preko
DESKTOP-a ali to ti ne preporucujem. Ako te zanima nesto oko
Windows programiranja, kontatiraj me na e-mail pa cu ti dati
podatke za neke dobre knjige u vezi toga (a i ja programiram pod
Windows-okruzenjem vec neko'lko godina).
cpp.73szdravko,
U razlicitim knjigama nasao sam klasu Array koja omogucava da se pri
koriscenju nizova proverava pogodnost indeksa (bounds checking).
Medjutim, niko ne pominje kako bi se moglo poboljsati koriscenje
visedimenzijskih nizova (matrica i sl.) Problem je naravno, to sto ne
postoji operator [][] koji bi se overload-ovao. Ima li neko
informacije o ovome? Hvala unapred :).
cpp.74embe,
Drugar me je zamolio da ovo pitam. Radi se o jednoj funkciji
iz Borlandovog OWL-a, TDC::FrameRgn. Naime, da li neko zna za
neka ogranicenja ove funkcije jer se nesto cudno ponasa.
Ona treba da crta okvir oko nekog regiona. Slicna funkcija koja
ispunjava(filuje) isti taj region radi korektno. Cudno ponasanje
se ogleda u tome da pri menjanju (povecavanju) prozora u kome je
prvo izfilovan region, a potom oko njega iscrtana kontura,
dolazi do neiscrtavanja konture, dok je region korektno izfilovan.
Kada je prozor manji, sve radi OK.
Napominjem da se obe funkcije, za filovanje i iscrtavanje okvira
pozivaju jedna za drugom, sa istim regionom kao argumentom. Drugi
argument ove funkcije TBrush, je korektno zadat. U helpu stoji:
"Ova funkcija vraca TRUE ako je kontura regiona iscrtana, a u
suprotnom vraca FALSE". Kada se moze desiti da ova funkcija
vrati FALSE ?
cpp.75szdravko,
Hi! Imam jedno pitanje, a odnosi se na FFLUSH naredbu.
Koristim BORLAND C++ 3.1, WATCOM C++ 9.5 i GNU C++ 2.41. Source koji
pisem radi bez modifikacija pod sva tri compiler-a. To je omoguceno
time sto se uglavnom drzim ANSI-ja, a takodje i znam kako je ono sto
nije ANSI izvedeno na svakom od njih.
U jednom delu programa imam potrebu da korisniku postavim pitanje, a
on odgovori sa Y/N. To radim tako sto se sa tastature uzima jedan
znak, a onda se proverava da li je on jednak {Y, y, N, n}.
U BORLAND-u i WATCOM-u koristim za to naredbu GETCH(). Ovo resenje je
polovicno, jer nije ANSI, a GNU i nema tu funkciju. Umesto toga moze
da se koristi GETC. Medjutim, GETC zahteva da se posle unesenog
karaktera pritisne ENTER. Ono sto je problem je sto taj ENTER ostaje u
buffer-u tastature i kvari mi ono sto radim posle toga.
Zato sam imao ideju da posle GETC-a iskoristim FFLUSH(STDIN) da
ocistim buffer. Medjutim, na WATCOM-u i GNU-u FFLUSH se veoma, veoma
cudno ponasa!
Da li neko ima ideju kako bi se naredba GETCH mogla efikasno zameniti
kombinacijom ANSI naredbi, ili sta bi se moglo koristiti umesto
problematicnog FFLUSH-a? Naravno, ponavljam svoje drugo pitanje: ima
li neko uputstva za WATCOM? Hvala unapred :)!
cpp.76janko,
Treba konačno da raščistiš pojmove:
stdin, stdout i stderr su STRIMOVANI ulazi i izlazi. fflush naredba
takođe utice na strimove. Strimovi, sa druge strane, nisu
konstrukciono predviđeni za interkativni rad, što ti uporno pokušavaš.
Za interaktivni rad se koristi konzolno orjentisani ulaz/izlaz (što
je nekada moguće i uključiti određenim procedurama tako da se to
postigne KROZ rutine koje inicijalno rade sa strimovima, a nekad
nije moguće -- zavisi od svakog sistema!) Čak i rešenje koje si uradio
na Gnuu ne mora da ti radi na nekoj Unix mašini, ako se oslanjaš na
specifilčnosti ponašanja konzole odnosno strimova. Klasično, strimovi
pod DOS-om su primitivniji i neznatno drugačiji od Unixovih, a zatim
i implementacija run-time biblioteka za različite platforme ne mora
da bude ista.
Moj recept je: kada hoću da nešto bude STVARNO prenosivo na sve
platforme, maksimalno izbegavam interakciju! Ostavljam korisniku da
edituje tekst fajl, a zatim se ceo tekst fajl prosleđuje programu koji
ga analizira. Učitavanje iz tekst fajla je prenosivo na sve platforme
bezbolno.
Pošto mi nije teško da pravim kompajlere (to mi je posao) onda
proizvoljno složen problem može da se svede na problem analize teksta
i prijave greške. Korisnik će videti u kojoj mu je liniji greška,
ispraviti i ponovo pokrenuti moj porgam. To je čak i bezbolnije nego
interakcija "unesi broj čvorova" pa kad dođe do 105. čvora prijaviš
mu grešku i mora ispočetka da kuca sve, a kada može da napiše fajl,
sve se svodi na to da nađe liniju xxx, ispravi je i sve ispočetka.
Razmisli o ovome.
cpp.77janko,
Inače, jedino što je lako prenosivo za odgovor na pitanje d/n je
učitavati SA ENTEROM. Promeni program tako da na svim platformama
korisnik mora da pritisne i enter posle d/n pitanja i sve se rešava
standardno...
Ne pravi problem gde ga nema...
cpp.78nenad,
Microsoft Visual C++ 4.2 neće više imati podršku za Win32s.
cpp.79biber,
Potreban mi je gcc kompajler (djgpp,verzija za DOS), ali
funkcionalna. Ono sto se moze naci na FON-u nema include.
Eventualno ako neko koristi gcc (GNU C++) da mi prevede
jedan sors.
cpp.80szdravko,
Ja sam koristio stvari sa UBBG-a i koiko vidim funkcionalne su. Imam
utisak da ti nisi raspakovao sve sto je potrebno za compiliranje, a
to je paket za C + paket za C++, a po potrebi i DJDEV111. Mialim da
du include-ovi uglavnom u paketu za plain C. Ako ti ne proradi, ajvi
se na 456-530, posto SEZAM ne zovem svaki dan! Zdravo, :)!
cpp.81chadra,
Subject: MS VC++4.0
Ne zamerite na jednom početničkom pitanju: 0;)
Kako da u neki projekat ukljucim svoj .cpp fajl (Da se vidi zajedno
sa ostalima ( u file view-u) koje kreira AppWizard)?
Za .h fajl je dovoljno jedno #include. :)
cpp.82bokir,
Može li neko da mi kaže koliko disketa zauzima BC++ 3.1?
cpp.83szdravko,
Moze. Zauzima 15 disketa!
cpp.85deimos,
>> Moze. Zauzima 15 disketa.
Ja sam mog osakatio na dve nepune (IDE+HELP+LIBS+HEADERS) :) Posto za
windowse BC31 nije bas preporucljiv, dos deo staje na najvise 4 diskete.
cpp.86obren,
> Moze. Zauzima 15 disketa!
Moj BC++ 3.1 & AF zauzima 13 disketa od 3.5". Da li su kod tebe u pitanju
"velike" diskete (5.25) ili je nešto drugo po sredi? Recimo, proveri koji
arhiver je korišćen, kod mene je u pitanju PAK...
cpp.87szdravko,
Ovo su .ddi diskete, moguce je da su bile 5.25". Naravno da moze da
se skrati, ali ja sam to iz vise izvora dobio u ovom obliku. Inace,
sta je u DOS delu 3.1 drukcije od 2.0? Da li neko ima ideju gde bi
mogao 3.1 da se kupi _legalno_?
cpp.88guta,
#> Može li neko da mi kaže koliko disketa zauzima BC++ 3.1?
15 komada, 1.44Mb.
cpp.89obren,
> Naravno da moze da se skrati, ali ja sam to iz vise izvora dobio u
> ovom obliku.
Pa nisam kratio, imam originalni Borland C++ 3.1 i App. Framworks.
> sta je u DOS delu 3.1 drukcije od 2.0?
Ne sećam se više dvojke, ali znam da sam jedno vreme radio sa BC 2.0
kojoj sam poturio biblioteke iz BC 3.1 pošto sam u to vreme imao SX-a
sa 2 MB memorije na čemu se verzija 3.1 gušila :) Sve uglavnom lepo
šljakalo dok pišeš u čistom C-u. Već kod C++ programa nije moglo da
prođe jer se radi o novijem standardu CPP-a. Uglavnom, optimizacija
je nešto malo bolja kod 3.1, biblioteke takođe optimizovanije i
što je meni jako važno dobija se kompletan izvorni kod svih funkcija
iz biblioteka. Takođe, uz 3.1 stiže i TurboVision biblioteka klasa
koja ne postoji kod verzije 2.0.
Ukratko, ja sa 3.1 nikada nisam doživeo nikakve problema, bagove sa
kompajlerom ili bibliotekama i nemam nameru da ga brišem da diska u
dogledno vreme. Borland C++ 3.1 mi je jedan veoma drag proizvod, i po
mom skromno mišljenju jedan od najboljih programa za DOS okruženje
ikad napisanih.
> Da li neko ima ideju gde bi mogao 3.1 da se kupi _legalno_?
Uh, to ti je malo bajat paket da bi danas trošio pare na njega, a
druga stvar je što sumnjam da to ima igde da se kupi uzevšiu u obzir
da je aktuelna verzija Borlandovog kompajlera 5.0 :)
cpp.90szdravko,
U pravu si, ali sam ja navikao na 3.1. Ja bas o Borland-ovim
kompajlerima nemam dobro misljenje iz vise razloga (ako nekog zanima,
mogu i da obrazlozim). IDE je ono sto volim. Posto ja imam svoje
header file-ove koji mi omogucavaju da isti kod kompajliram razlicitim
kompajlerima, onda radim ovako:
-razvijam u 3.1
-kompajliram Watcom-om pod DOS-om, a GNU-om pod Linux-om.
U poslednje vreme koristim i kombinaciju Watcom + kompilacija iz TSE
editora (za programe gde mi ne treba projekt).
Ako bi vec koristio IDE iz NT-a ili Windows-a, onda mi Borland vise i
ne treba - Watcom to ima.
Inca, upravo sam dobio cenu Watcom-a u New Jersey-ju (Programmer's
paradise). Cena je 189$, EDU popust ne postoji. Trba da mi stigne
odgovor koliko kosta dokumentacija.
Pozdrav!
cpp.91nenad,
> Inca, upravo sam dobio cenu Watcom-a u New Jersey-ju (Programmer's
> paradise). Cena je 189$, EDU popust ne postoji. Trba da mi stigne
> odgovor koliko kosta dokumentacija.
Sva neophodna dokumentacija se nalazi na CD-u, ovo drugo naručuj
samo ako ne možeš bez papirne dokumentacije. :)
cpp.92biber,
>> Ja bas o Borland-ovim
>> kompajlerima nemam dobro misljenje iz vise razloga (ako nekog zanima,
>> mogu i da obrazlozim). IDE je ono sto volim. Posto ja imam svoje
Mene interesuje, pa bih voleo da napišeš zašto ti se Borland
ne svidja.
cpp.93omega,
Moze li neko, ko ima instaliran BC++ v4.50, da baci pogled
koji bw*.dll fajlovi postoje u \windows\system?
cpp.94biber,
>> Moze li neko, ko ima instaliran BC++ v4.50, da baci pogled
>> koji bw*.dll fajlovi postoje u \windows\system?
BWCC000C DLL 96,928 11-17-94 4:50a
BWCC0009 DLL 96,912 11-17-94 4:50a
BWCC0007 DLL 97,072 11-17-94 4:50a
BWCC32 DLL 211,488 11-17-94 4:50a
BW32000C DLL 159,744 11-17-94 4:50a
BW320009 DLL 159,744 11-17-94 4:50a
BW320007 DLL 159,744 11-17-94 4:50a
BWCC DLL 164,928 11-17-94 4:50a
8 file(s) 1,146,560 bytes
cpp.95chadra,
Subject: MS Visual C++ 4.0 & W95
----------------------------
#include<windows.h>
int WINAPI WinMain(HINSTANCE d1, HINSTANCE d2, LPSTR d3, int d4)
{
MessageBox(NULL, "Hello World!", "", MB_OK);
}
----------------------------
Kada se ovaj program kompajlira iz komandne linije, sve je u redu,
ali kada se kompajlira iz samog Development Studija, on prijavljuje:
...
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
...
U cemu je problem?
cpp.96janko,
> BWCC000C DLL 96,928 11-17-94 4:50a
> BWCC0009 DLL 96,912 11-17-94 4:50a
> BWCC0007 DLL 97,072 11-17-94 4:50a
> BWCC32 DLL 211,488 11-17-94 4:50a
> BW32000C DLL 159,744 11-17-94 4:50a
> BW320009 DLL 159,744 11-17-94 4:50a
> BW320007 DLL 159,744 11-17-94 4:50a
> BWCC DLL 164,928 11-17-94 4:50a
Zanimljivo je da oni BWCC sa osam znakova u imenu nisu realno
potrebni našim korisnicima.
Malo je poznato da su oni LOKALIZOVANE verzije DLL-ova (na
drugim jezicima!)
cpp.97omega,
Da li finalni Borland C++ v5.0 sadrzi fajlove datuma 7.2.1996.?
cpp.98janko,
> Da li finalni Borland C++ v5.0 sadrzi fajlove datuma 7.2.1996.?
Trenutno najsvežiji BC, prema informacijama koje sam ja poslednji put
imao, je BC 5.01, ali istog nisam video pa ne znam koji je njegov datum.
Borland je u poslednje vreme krajnje nemaran sa verzijama: recimo
na disku za 4.52 piše BC 4.5. Tako je moguče da za 5.01 nigde
ne piše ništa o tome da je to 5.01.
Ja znam da meni poznata 5.00 verzija ima datum 21.2.1996. To 7.2.
je verovatno nešto divča, i sigurno nije 5.01.
cpp.99omega,
Ţ Ja znam da meni poznata 5.00 verzija ima datum 21.2.1996. To 7.2.
Ţ je verovatno nesto divca, i sigurno nije 5.01.
Cini mi se da je 5.01 zapravo 5.00+patch 1+patch 2.
A ova od 7.2 je izleda gama verzija. Da li na toj od 21.2.
rade patch-evi?
cpp.100obren,
> Borland je u poslednje vreme krajnje nemaran sa verzijama: recimo
> na disku za 4.52 piše BC 4.5. Tako je moguče da za 5.01 nigde
> ne piše ništa o tome da je to 5.01.
A šta piše za vreme kreiranja .EXE fajlova kod verzije 4.52 kada
otkucaš dir? Borlandovi programi su vazda (znam za C kompajlere sigurno)
kao vreme imali svoju verziju. Recimo verzija 3.1 imala je vreme 03:10,
a to vazi i za BC za OS/2... Baš me zanima da li su dosledni i kod
minornih izmena verzije (one na drugoj decimali ;)
cpp.101janko,
> A šta piše za vreme kreiranja .EXE fajlova kod verzije 4.52 kada
> otkucaš dir? Borlandovi programi su vazda (znam za C kompajlere
> sigurno) kao vreme imali svoju verziju. Recimo verzija 3.1 imala je
> vreme 03:10, a to vazi i za BC za OS/2... Baš me zanima da li su
> dosledni i kod minornih izmena verzije (one na drugoj decimali ;)
Da, BC 4.52 ima datum fajlova sa vremenom 4.52.
Međutim, prema onome što sam ja shvatio, pravi kupci BC 5 su uz BC 5
dobili i ceo BC 4.53 koji na Usenetu proglašavaju za najstabilniju
verziju svih vremena (mada ja možda pre glasam za 3.1). E verziju
4.53 nisam nikada video.
Za 5.01 ne znam da li se vidi u datumu...
cpp.102janko,
> Cini mi se da je 5.01 zapravo 5.00+patch 1+patch 2.
Nije, Borland tvrdi da su ispravili i više, a da su Patchevi
ispravljali samo najneophodnije stvari.
> A ova od 7.2 je izleda gama verzija.
7.2??? Gde to ima, i na šta to liči (tj. u čemu se razlikuje od 5)?
Btw, alfa je starija od beta, a gama se nikada ne pravi. Prvo se da
alfa malom krugu, zatim beta većem krugu testera, pa se ili pravi
prodajna ili kod MS se pravi pre-release, novinarska verzija itd.
A to "gama" nema veze sa životom.
> Da li na toj od 21.2. rade patch-evi?
Sasvim sam siguran da da, jer u to vreme kada se pojavila 5.01 nije
ni postojao.
cpp.103omega,
Ţ 7.2??? Gde to ima, i na sta to lici (tj. u cemu se razlikuje od 5)?
7.2. je _datum_ fajlova, a ne verzija.
Ţ Btw, alfa je starija od beta, a gama se nikada ne pravi.
Ţ A to "gama" nema veze sa zivotom.
>ADDON.TXT Revision 0.6 2/3/96
>BCW 5.0 AddOn Interfaces (For release with BC5 Gamma)
^^^^^^^^^
Ti nemas veze sa zivotom.
Ţ> Da li na toj od 21.2. rade patch-evi?
Ţ
Ţ Sasvim sam siguran da da, jer u to vreme kada se pojavila 5.01 nije
Ţ ni postojao.
Pitanje je bilo da li rade, a ne da li si siguran u sebe.
cpp.104janko,
> >ADDON.TXT Revision 0.6 2/3/96
> >BCW 5.0 AddOn Interfaces (For release with BC5 Gamma)
> ^^^^^^^^^
Tjah, Borland je očigledno tako upropastio betu da je morao da pravi
i gamu. Vidi se i to da se to čudo pojavilo PRE komercijalne verzije.
Kako je i komercijalna verzija bila bagovita do bola, tek ta gam ne
vredi pomena.
> ]> Da li na toj od 21.2. rade patch-evi?
> ]
> ] Sasvim sam siguran da da, jer u to vreme kada se pojavila 5.01
> nije ] ni postojao.
>
> Pitanje je bilo da li rade, a ne da li si siguran u sebe.
Alo, gde si to "u sebe" pročitao?
Da li rade -- nemam pojma i ne zanima me da ispitujem. Kada budem
koristio BC 5, to nikako neće biti 5.00. Iz te verzije za sada samo
koristim stand-alone dibagere, jer mi oni trebaju.
cpp.105omega,
Da li je neko uspeo da sa BC++ v4.5 napravi Win program manji od 30 kb?
Sa v3.1 moze bez problema i ispod 4 kb.
cpp.106qpele,
Koji su ekvivalenti u cpp-u za poascal komandu in i nabrojavanje
tipa :
ch in ('1'..'6')
cpp.107janko,
> Koji su ekvivalenti u cpp-u za poascal komandu in i nabrojavanje
> tipa :
> ch in ('1'..'6')
if ( ch ) in ( '1'..'6' ) then do_if;
možeš da napišeš ili kao
switch ( ch ) { case '1': case '2': case '3': case '4': case '5':
case '6':
do_if();
}
ili kao
if ( ch >= '1' && ch <= '6' ) do_if();
cpp.108maksa,
>> Koji su ekvivalenti u cpp-u za poascal komandu in i
>> nabrojavanje tipa : ch in ('1'..'6')
C++ nema ugrađen tip podatka skup, ali taj tip postoji parametrizovan
u STL (Standard Template Library) kao set<čega_već_treba>.
Konkretno, to što pitaš može da se uradi na par načina:
1)
if(ch>='1' && ch<='6')
// radi šta već treba
Ili funkcijama standardne C biblioteke:
2)
#include <string.h>
char ch;
// negde napuniš ch
if(strchr("123456", ch)!=NULL) // strchr vraća pointer na taj karakter
// u stringu ili NULL ako ga nema
// šta već treba
3)
#include <string.h>
char ch;
// napuniš ch
if(!(strpos("123456", ch) < 0)) // strpos vraća poziciju char-a u stringu,
// ili -1 ako ga ne nađe
// radi šta treba
Rešenje 1) je verovatno najbolje zato što će ti i strpos i strchr
ipak "naći" karakter u nizu ukoliko je taj ch==0.
PS Kada bi ispitivao da li je ch bilo koja cifra to bi radio f-jom iz
ctype.h:
if(isdigit(ch))
// radi šta treba
cpp.110mcar,
Da li neko zna kako da najjednostavnije pod win95 pristupim fizickim
lokacijama memorije. Da li postoji nacin da to ucinim bez pisanja drajvera za
uredjaj.
Unapred zahvalan, Marko
cpp.111bokir,
Pokusavam da radim u Turbo Viziji sa BC++ 3.1, ali nikako
ne mogu da upotrebim klasu TFileList.
Kako se to radi?
Evo programa koji mi ne radi:
------------------------------------------------------------
#define Uses_TApplication
#define Uses_TScrollBar
#define Uses_TFileList
#include <tv.h>
class TPrg : public TApplication
{
public:
TPrg();
};
TPrg::TPrg() : TProgInit( TPrg::initStatusLine,
TPrg::initMenuBar,
TPrg::initDeskTop)
{
TScrollBar *sb = new TScrollBar(TRect(3, 14, 34, 15));
TFileList *list = new TFileList(TRect(3, 6, 34, 14), sb);
insert(list);
list->readDirectory("*.*");
list->select();
}
int main()
{
TPrg p;
p.run();
return 0;
}
cpp.112null,
Pozdrav svim programerima !
Imam par pitanja u vezi OOP.:)))
1. Interesuje me kako da pokrenem odredjenu f-ju clanicu neke klase
kod svih kreiranih objekata te klase. Napominjem podaci nisu
deklarisani kao static i netreba da budu tako deklarisani.
Razmisljao sam da sve objekte deklarisem u matrici i onda da ih
propustim kro for petlju, ali mi je nezgodno da svaki objekat
pamtim po njegovom broju u matrici, isto tako je nezgodno pisati
svih 80 objekata i pozivati istu f-ju.
2. Interesuje me kako da kod dinamcki kreiranih objekata odredim im
ime, odnosno prilikom ispitivanja nekog uslova, ako uslov
zadovoljava kreiaraj objekat, medjutim taj uslov ce sigorno biti
postavljan vise puta.
Hvala na razumevanju
Dejan Lozanovic
cpp.113mcar,
Kako za sve objekte? Mislis da pozoves te funkcije jednu za drugom ili nekako
drugacije? MC
cpp.114null,
mislim da pozovem sve f-ja clanice sa sto manje pisanja, a da imena
objekata ostanu razumljiva.
Dejan Lozanovic
P.S Mislim da je suludo pozivati za svaki objekat istu f-ja clanicu
pogotovo ako znas da objekata ima 80
cpp.115mcar,
Onda bi moglo otprilike ovako:
- formiraj pool ili listu ili neki slican skup sa pointerima na sve objekte
doticnog tipa. Ovaj pool bi mogao biti staticki clan doticne klase. Kada se
konstruise objek doticne klase njegova adresa se doje u listu.
- pri pozivu neke odredjene funkcije prolazi se kroz listu i pozivaju sve
ostale funkcije svih objekata. U ovom pozivanju objektima se pristupa preko
niza pointera i to je lako uraditi kroz petlju. Paziti da ne dodje do
rekurzije.
- na ovaj nacin moguce je pozvati sve funkcije clanice, a spolja objekti nisu
u matrici. Niz ili lista pointera ne vide se spolja i deo su pool objekta.
nadam se da ce ova ideja nesto pomoci.
MC
cpp.116maksa,
>> 1. Interesuje me kako da pokrenem odredjenu f-ju clanicu neke
>> klase kod svih kreiranih objekata te klase. Napominjem podaci
>> nisu deklarisani kao static i netreba da budu tako
>> deklarisani. Razmisljao sam da sve objekte deklarisem u
>> matrici i onda da ih propustim kro for petlju, ali mi je
>> nezgodno da svaki objekat pamtim po njegovom broju u matrici,
>> isto tako je nezgodno pisati svih 80 objekata i pozivati istu
>> f-ju.
Važi sve što ti je rečeno u mcar/10.115, ali ukoliko nije u pitanju
čista vežba, verovatvno je najbolje da skineš Standard Template
Library (STL) i naučiš da je koristiš, pošto ona elegantno (koliko to
C++ dozvoljava) rešava baš ovakve stvari. Ubaciš svoje objekte u neki
od kontejnera i pristupaš im preko iteratora/functor-a. Nećeš zažaliti
ako uložiš vreme u STL!
>> 2. Interesuje me kako da kod dinamcki kreiranih objekata
>> odredim im ime, odnosno prilikom ispitivanja nekog uslova, ako
>> uslov zadovoljava kreiaraj objekat, medjutim taj uslov ce
>> sigorno biti postavljan vise puta.
Ako malo pojasniš ovo pitanje, možda se nađe direktan odgovor. Šta
tačno pokušavaš da postigneš?
'Vrstu' objekta je moguće odrediti tokom izvršavanja ako kompajler
ume da generiše RTTI (run-time type information), što radi većina
novih kompajlera, ili možeš to sam da ugradiš 'peške' izvođenjem iz
jedne bazne klase.
cpp.117qpele,
Moj problem je sledeci :
while ((ch=getch())!=13)
{ if (!(ch!=8))
{...}
else
{...}
Problem je u tome st kada je ch=8 (prvi uslov) u opste ne ulazi u prvu granu ,
vec se vraca na while.A ako stavim if (ch=8) onda ne ulazi ni u jednu granu.
U cemu je stos ?
cpp.118firus,
> Problem je u tome st kada je ch=8 (prvi uslov) u opste ne ulazi
> u prvu granu , vec se vraca na while.A ako stavim if (ch=8)
> onda ne ulazi ni u jednu granu. U cemu je stos ?
Nešto mi tu smrdi. Ne verujem da se baš sve dogadja kao
što kažeš, al' neka bude. BKB, napisao sam jedan sasvim
funkcionalan programčić koji verovatno liči na ono što si ti
hteo da uradiš:
--- CUT HERE ---
#include <conio.h>
#include <stdio.h>
main()
{
char ch;
while ((ch=getch())!=13)
{
if (ch==8)
printf ("\nOvde");
else
printf ("\nOnde");
}
}
--- CUT HERE ---
Pošto je uslov if (!(ch!=8)) ekvivalentan uslovu if (ch==8)
iskoristio sam ovaj drugi.
Što se tiče problema sa if (ch=8) on zapravo i ne postoji.
IF selekcija funkcioniše tako što se izraz u zagradi izračunava
i u slučaju da dobijemo rezultat različit od 0 idemo na prvu granu,
inače na else granu (ukoliko je 0). Ukoliko napišeš if (ch=8) onda
promenljivoj ch dodeljuješ vrednost 8 te je izraz u zagradi SIGURNO
različit od nule i izvršava se prva grana. Znači, desilo bi se ovo
što sam naveo, a nikako da se preskoči cela selekcija.
Na pamet mi pada da si možda ch deklarisao kao pointer na
char (ili na int) zbog čega je došlo do greške (ali čak bi i u tom
slučaju simptomi bili različiti od onih koje si naveo).
cpp.119null,
Uz poruku stavljam fajl jer kad napravim ascii upload dobijem
gomilu djubreta
cpp.txtcpp.120maksa,
>> Uz poruku stavljam fajl jer kad napravim ascii upload dobijem
>> gomilu djubreta
Batali ascii upload, skini odavde SOR ili SDW (što će ti samo po sebi
bitno olakšati komunikaciju), i šalji exec ZModem protokolom.
>> Library (STL) i naucis da je koristis, posto ona elegantno (koliko to
>> C++ dozvoljava) resava bas ovakve stvari. Ubacis svoje objekte u neki
>> od kontejnera i pristupas im preko iteratora/functor-a. Neces zazaliti
>> ako ulozis vreme u STL!
>>
>> A gde moze da se nadje STL (zajedno sa uputstvom)
Ne znam da li je ima na Sezamu, pa je kačim uz ovu poruku. Naravno,
potrebno je da tvoj kompajler podržava templates tj. šablone (znači
BC/C++ 3.1 svakako otpada, a verovatno će se najbolje slagati sa
BC/C++ 4.5x). U arhivi su arhive sa samim STL-om, dokumentacija u
WinHelp formatu + nešto primera.
>>>> 2. Interesuje me kako da kod dinamcki kreiranih objekata
>>>> odredim im ime, odnosno prilikom ispitivanja nekog uslova, ako
>>>> uslov zadovoljava kreiaraj objekat, medjutim taj uslov ce
>>>> sigorno biti postavljan vise puta.
>>
>> Ako malo pojasnis ovo pitanje, mozda se nade direktan odgovor. Sta
>> tacno pokusavas da postignes?
>>
>> //pa ide primer
>> funkcija()
>> {
>> if(...)
>> {
>> // kreiraj dinamicki objekat....
>> }
>> }
>>
>> void main()
>> {
>> funkcija();
>> funkcija();
>> funkcija();
>> funkcija();
>> funkcija();
>> }
>>
>> Pitanje :
>> sta bi trebalo da postoji u if uslovu da bih razlikovao te objekte
>> pri svakom pozivu f-je funkcija(), odnosno da bi svaki objekat imao
>> svoje sopstveno ime koje mogu kasnije da koristim u programu?
Mislim da je ovde problem u koncepciji, što zahteva da ponovo razmisliš
o objektima. Pošto i sam kažeš da učiš OOP, treba da vidiš da li ikako
možeš bez te te slobodne funkcije (sl. funkcija - funkcija koja nije
član nijedne klase). Ovo (postojanje slobodnih funkcija) na pr. u Javi,
koja je "objektnija" nego C++, nije moguće, a verovatno ćeš kad-tad
poželeti da naučiš i taj jezik. Ako nije nešto super-tajno, iznesi ovde
tačan kontekst, tj. koji su objekti i koja funkcija u pitanju, pa da
možda vidimo kako to može drugačije da se reši. Nemoj da te mrzi da
prekrajaš svoje klase, i najveći svetski autoriteti priznaju da je OOP
iterativan proces.
Ako ipak insistiraš na tome da svakom objektu (instanci klase) daš
jedinstveno ime, onda ubaci u klasu i jedan string, jedan static int,
u konstruktoru uvećavaj taj int, prevodi ga u njegov char (itoa()) i
dodeljuj ga tom stringu. Mada, ponavljam, bolje ti je da poradiš na
objektnoj dekompoziciji, pošto je sva prilika da ćeš dalje uletati u
slične probleme.
>> 'Vrstu' objekta je moguce odrediti tokom izvrsavanja ako kompajler
>> ume da generise RTTI (run-time type information), sto radi vecina
>> novih kompajlera, ili mozes to sam da ugradis 'peske' izvodenjem iz
>> jedne bazne klase.
>>
>> Da li bi mogao da malo vise pojasnis ovo jer nerazumem bas najbolje.
Na pr.:
#include <typeinfo.h>
#include <iostream.h>
class A {};
class B {};
class C {};
void main() {
A mA;
B mB1;
C mC;
B mB2;
cout << "mA je tipa " << typeid(mA).name() << endl;
cout << "mB1 je tipa " << typeid(mB1).name() << endl;
cout << "mB2 je tipa " << typeid(mB2).name() << endl;
cout << "mC je tipa " << typeid(mC).name() << endl;
if ( typeid(mB1) == typeid(mB2) )
cout << "mB1 i mB2 su istog tipa tj. " << typeid(mB1).name();
}
Prevedi ovo i pokreni, za detalje pogledaj help tvog kompajlera, ali
mislim da u tome nije rešenje za tvoj problem.
stllib.zipcpp.121obren,
> Naravno, potrebno je da tvoj kompajler podržava templates tj. šablone
> (znači BC/C++ 3.1 svakako otpada, a verovatno će se najbolje slagati
> sa BC/C++ 4.5x).
BC++ 3.1 ima šablone, možda si mislio na izuzetke :) Doduše ne znam da li
je bilo nekih izmena standarda po tom pitanju, pa da eventualno ne guta
ovaj STL, ali kao što rekoh podržava templates (ima ih i u helpu).
cpp.122maksa,
>> BC++ 3.1 ima šablone, možda si mislio na izuzetke :) Doduše ne
>> znam da li je bilo nekih izmena standarda po tom pitanju, pa
>> da eventualno ne guta ovaj STL, ali kao što rekoh podržava
>> templates (ima ih i u helpu).
Tačno, u pravu si, u brzini sam zabrljao ko šta podržava i ne podržava.
U svakom slučaju sve verzije STL-a su po dokumentacijama i člancima
'deklarisane' za rad sa BC 4.x pa naviše.
cpp.123null,
>> pozeleti da naucis i taj jezik. Ako nije nesto super-tajno,
iznesi ovde
>> tacan kontekst, tj. koji su objekti i koja funkcija u pitanju,
pa da
Uopste nije tajna radi se projektu "Diplomacy" koji hocu da napisem
za windows, neznam koliko si upoznat sa samom igrom ali na kraju
godine se prebrojavaju suply centri, ukoliko neka zemlja ima vise
SC od broja jedinica onda ima pravo da izgradi jos
jedinica dok SC==broju_jedinica; to je uslov koji postavljam u onoj
funkciji i tako za svaki objekat zemlja.
>> mozda vidimo kako to moze drugacije da se resi. Nemoj da te mrzi
da
>> prekrajas svoje klase, i najveci svetski autoriteti priznaju da
je OOP
>> iterativan proces.
Ne ne mrzi me jer nekad vidim da je neka klasa bolja ako se
implementuje na drugaciji nacin, ja kad projektujem klasu uvek
vapisem i alternativno resenje koje remujem tako da po potrebi
kombinujem ono sta mi treba.
NULL
cpp.124nenad,
Microsoft unveils Visual C++ 5.0 Pro
Microsoft on Tuesday officially took the wraps off the
professional edition of its Visual C++ 5.0 upgrade, which is
designed to ease the development of ActiveX components and
applications for Internet and intranet deployment.
The update sports a faster compiler, native Component Object
Model (COM) support, improved usability features, and Visual
Basic (VB) scripting for automating development tasks.
The Visual C++ upgrade, which is slated to ship by Microsoft's
March 19 Developer Days conference, will be packaged as a part of
the company's Visual Studio 97 tools suite, in addition to its
stand-alone configuration. Pricing was not released.
The update has garnered praise for its performance improvements
and increased ease of use.
"I think the biggest improvement, from an end-user developer
standpoint is the new library stuff, like the Active Template
Library [ATL] and improved MFC [Microsoft Foundation Class],
which has more abstractions you can work with for class support.
ATL is important, since it lets you create objects without the
overhead of MFC, which was a was a problem," said Ed Sullivan,
director of development at NuMega Technologies, a Nashua, N.H.,
developer of Windows programming utilities.
"5.0 also allows you to do post- and pre-processing on builds,
and overall customization is also a lot easier," Sullivan said.
Visual C++ 5.0 includes native support for COM, increased support
of the ANSI C++ standard, and support for Intel's MMX multimedia
technology and the Pentium Pro processor.
In addition, the tool's Developer Studio integrated development
environment (IDE) includes Visual Basic, Scripting Edition, with
which developers can automate repetitive tasks, according to
company officials.
In a future release, probably in 1998, Visual C++ is expected to
adopt the developer shell slated for Visual Basic 6, also
expected in 1998, according to sources.
Although the visual component of the IDE could resemble that of
Developer Studio, key VB technologies such as the add-in manager
and OLE interfaces would ease the integration of third-party and
custom components and programs.
Within Visual Studio 97, Visual C++, Visual J++, and Microsoft
Developer Network share the Developer Studio IDE.
Among the upgrade's ease-of-use features, Visual C++ 5.0,
Professional Edition, includes help wizards for creating compact,
more efficient components with the tool's ATL -- a class library
for developing components streamlined for Internet use, according
to company officials in Redmond, Wash.
Officials tout a roughly 10 percent performance improvement over
applications generated with the current release -- Visual C++
4.2.
cpp.125guta,
Da li ste odustali od razvoja aplikacija u C++, jer su vam postojeći
kompajleri nekomforni?
Da li ste poželeli da vidite C++ okolinu za Windows koja će biti ugodna
za rad kao Delphi ili VB?
Postoji rešenje - prvi pravi RAD C++
Borland uzvraća udarac:
-------------------------
Borland C++ Builder 1.0
-------------------------
U nastavku je članak iz PC Magazina o novom Borlandovom alatu.
--------------------------------------------------------------------
PC Magazine -- February 4, 1997
Borland C++ Builder 1.0: Like Delphi for C++
Richard V. Dragan
Borland International has a long and honorable history as a C++ tools
provider, but in recent years, the company has lost momentum. This will
change dramatically with the appearance of Borland C++ Builder 1.0, due to
ship shortly after this story appears. In essence, C++ Builder will be a
C++ implementation of Borland's pioneering product Delphi, based on Object
Pascal. The beta version we tested shows C++ Builder to be a strong
contender in bringing visual RAD-tool functionality to C++. The company
will also continue to ship and revise its older Borland C++.
Delphi-Like Strengths
C++ Builder will offer many of the familiar Delphi strengths, including a
rich component library, excellent database access, and a highly visual
programming model. You will even be able to use Delphi Pascal modules
inside C++ projects.
The interface in Borland C++ Builder is closely based on the Delphi model
with a toolbar of components at the top of the screen. Programming is
largely a matter of designing forms with components from the Visual
Component Library. After placing components, you set properties and attach
code to events.
The Visual Component Library includes over 100 components, most of which
are native Delphi controls distributed in .DCL files. Besides standard
Microsoft Windows user-interface objects, there are components for Windows
95 common controls, bound database controls, database objects such as
tables and transactions, report writer objects, and Internet components for
using the most common protocols. ActiveX (OCX) controls are also supported.
To ease working with components and controls, C++ Builder offers Object
Inspector, a grid interface for accessing and setting properties. Adding a
new event is as simple as double-clicking. The event-handler code window is
an editing environment that provides syntax highlighting.
In addition to providing a powerful component model, Borland C++ Builder
facilitates code reuse in other significant ways. To get you started, the
standard targets include standard applications, console applications, DLLs,
and Units, Borland's C++ analog of a Pascal module. Since any project or
object can be placed in its object repository for reuse in new projects,
it's possible to start a new project quickly based on an existing one.
Significantly, C++ Builder lets you target native components, and these can
be subclassed from any existing native control. This means that it's easy
to customize and then reuse existing controls. A future version will
support OCX control creation as well. For legacy code reuse, Borland C++
Builder promises support for Microsoft Foundation Classes (MFC) and
ObjectWindows Library (OWL) code, as well as custom C++ code.
The C++ Builder uses the compiler technology from the Borland C++ 5.0
standalone compiler, and it will support advanced C++ language features
including templates, runtime type identification (RTTI), and namespaces.
The product also comes with RogueWave's version of the C++ Standard
Library, which includes the Standard Template Library for efficient data
containers, as well as utility classes such as string classes.
C++ Builder will feature incremental building technology, as pioneered in
Delphi. Your project can be built in the background as you edit, resulting
in far quicker net-build times.
The C++ Builder debugger is truly integrated; there is no separate
debugging option, at least in the beta version we tested. As you run your
code, you have access to watches, breakpoints, threads, registers, and call
stacks. At any time, you can pause a program, make a change, and
incrementally rebuild the project. The form designer, Object Inspector, and
other tools still function while a program is running, so it is possible to
add new events during the debug process.
As with Delphi, C++ Builder has many enhanced features for targeting
database applications. You can use its bound controls for accessing and
displaying data in a variety of formats. Database controls provide access
to databases, including data sources, tables, stored procedures, and
reports. C++ Builder relies on Borland's IDAPI database engine to connect
to a variety of SQL and non-SQL data.
Because of the wide variety of Internet controls available, including FTP,
HTTP, HTML, SNMP, POP, TCP, and UDP, you can already build a wide variety
of Internet clients. For server-side components, Borland C++ Builder will
eventually include a vendor-neutral interface for NSAPI, ISAPI, and CGI
server-side components.
With its technology from the successful Delphi product line, Borland C++
Builder 1.0 is likely to be a major player in RAD-oriented C++. The initial
version appears to be solid and headed for a very capable first release.
Borland C++ Builder 1.0. List price: Not determined at press time. Borland
International, Scotts Valley, CA; 408-431-1000; fax 408-431-1732;
www.borland.com. C++ Builder will have a component-based programming model
similar to Delphi's.
Copyright (c) 1997 Ziff-Davis Publishing Company
cpp.126guta,
Uz poruku se nalazi priložen FAQ o novom Borlandovom proizvodu:
Borland C++ Builder 1.0
bcppqa.zipcpp.127guta,
Uz poruku se nalazi Fact Sheet o novom Borlandovom proizvodu:
Borland C++ Builder 1.0
bcppfs.zipcpp.128guta,
Kako Borland C++ Builder sarađuje sa MFC i OWL klasama.
owl_mfc.zipcpp.129guta,
Sada sledi serija snimaka ekrana Borland C++ Builder-a.
Uz ovu poruku:
Prozor sa editorom.
9885_1.gifcpp.130guta,
Ne, ovo nije Delfi :), mada je sve tu: Object Inspector, Form Designer,
Component palette...
Na slici je klasičan dizajn male baze podataka...
9912.gifcpp.131guta,
Slično kao u prethodnoj poruci, još jedan "Delfoliki" izgled ekrana. Na
prvi pogled, od Delfija se razlikuje samo po natpisu u vrhu prozora...
9923.gifcpp.132guta,
Borland C++ Builder SQL Explorer - snimak ekrana.
9957.gifcpp.133guta,
Borland C++ Builder SQL monitor - snimak ekrana.
9958.gifcpp.134guta,
Borland C++ Builder - snimak ekrana. Obratite pažnju na prozor u dnu
ekrana - TD fanovi, izgleda li vam ovo poznato? :)
img1.gifcpp.135guta,
Sem ostalih (lepih :) stvari koje BC++ Builder podržava, jedna je posebno
zanimljiva: Ume da iskoristi već postojeći kod i formove iz Delfija, čak
i da ih nasleđuje.
Naravno, tu je i Repository, ad-hoc programiranje front-end apikacija
za baze podataka, ActiveX komponente, i još mnogo drugih lepih sitnica.
Da li je ovo ono što je nedostajalo u Windows C++ programiranju?
cpp.136guta,
Uz ovu i narednih pet poruka se nalazi demo Borland C++ Builder-a.
Borland C++ Builder Demo 1/6
bcdemo.arjcpp.137guta,
Borland C++ Builder Demo 2/6
bcdemo.a01cpp.138guta,
Borland C++ Builder Demo 3/6
bcdemo.a02cpp.140guta,
Borland C++ Builder Demo 4/6
bcdemo.a03cpp.141guta,
Borland C++ Builder Demo 5/6
bcdemo.a04cpp.142guta,
Borland C++ Builder Demo 6/6
Poslednja arhiva iz serije.
bcdemo.a05cpp.143janko,
> Da li ste odustali od razvoja aplikacija u C++, jer su vam
> postojeći
> kompajleri nekomforni?
>
> Da li ste poželeli da vidite C++ okolinu za Windows koja će biti
> ugodna
> za rad kao Delphi ili VB?
>
> Postoji rešenje - prvi pravi RAD C++
>
> Borland uzvraća udarac:
>
> -------------------------
> Borland C++ Builder 1.0
> -------------------------
>
> U nastavku je članak iz PC Magazina o novom Borlandovom alatu.
Pročitajte i moj članak u Mikroračunarima koji će da izađu za desetak
dana! Nisam imao PC Magazin kada sam ga pisao ;) ali sam imao program
za evaluaciju! I stvarno je sjajna stvar. Po poslednjim vestima,
Borland je predao program u fabrike da se štampa, što će reći da će
se početi javno prodavati vrlo uskoro! PC Magazin kada je pisao članak
nije imao koje će biti cene, i u kojim verzijama će se Builder
prodavati -- naravno, tih podataka ima u Mikroračunarima. ;>>
cpp.144janko,
> Sem ostalih (lepih :) stvari koje BC++ Builder podržava, jedna je
> posebno
> zanimljiva: Ume da iskoristi već postojeći kod i formove iz Delfija,
> čak
> i da ih nasleđuje.
C++Builder ima ceo ObjectPascal kompajler u sebi! Još detalja -- u
Mikroračunarima.
> Da li je ovo ono što je nedostajalo u Windows C++ programiranju?
Da! Ja sam crkao od sreće!
cpp.145nenad,
> Postoji rešenje - prvi pravi RAD C++
""""""""""
Šta podrazumevaš pod "prvi pravi", tj. šta ga čini "pravim"?
ps. Bio sam ubeđen da već 3-4 godine postoji nekakav MS Visual C. ;)
cpp.146janko,
> > Postoji rešenje - prvi pravi RAD C++
> """"""""""
> Šta podrazumevaš pod "prvi pravi", tj. šta ga čini "pravim"?
>
> ps. Bio sam ubeđen da već 3-4 godine postoji nekakav MS Visual C.
> ;)
Nisi u pravu, Nenade. Od Visual C je samo naslov takav da ljude
"navuče" da misle da je to vizuelni jezik. Nije, srećo. Imaš
App Wizarda, on ti jednom izgeneriše kostur, a posle se slikaj.
Probaj malo da programiraš u tome.
A onda svrni kod mene da vidiš da ću za ono što treba bar dva dana
rada na Visual C-u ja na Builderu potrošiti petnaest minuta.
Ponovo: Visual C je običan C, sa "kvarnim" imenom da asocira na
Visual Basic. Prvi koji nudi snagu Visual Basica na jeziku C++,
najbrže, je Borland C++Builder. Ima neko novo Watcomovo čudo za koje tvrde da
radi "skoro tako" ali se žale da je "znatno sporiji". MS još nije
prišao ovim stvarima.
C++Builder je revolucionarna stvar za C++ u onoj meri u kojoj
se Turbo Paskal razlikovao od "klasičnih prevodilaca" (*ebi ga,
možda nisi imao prilike da vidiš zašto je Turbo Paskal
bio revolucija -- možda ti je to prvo što si video od prevodilaca
-- e ne znam onda kako da ti objasnim).
cpp.147maksa,
>>Bio sam ubeđen da već 3-4 godine postoji nekakav MS Visual C. ;)
MS Visual C je - visual k'o što je Nezavisni Studentski
Pokret - nezavistan. ;)
cpp.148maksa,
>> "navuče" da misle da je to vizuelni jezik. Nije, srećo. Imaš
>> App Wizarda, on ti jednom izgeneriše kostur, a posle se
>> slikaj.
Ne završava se sva pomoć kod App Wizarda.
I Class Wizard dosta pomaže tako što iz resursa (na pr. dijaloga)
generiše odgovarajuću C++ klasu i odradi deo posla oko DDX-a, tj.
razmene podataka između kontrola i odgovarajućih promenjivih, zatim
isti taj Class Wizard automatski generiše f-je za MESSAGE_MAP, itd..
Dalje, ume lepo da generiše klase i iz type library fajla, što mnogo
olakšava rad sa OCX-ovima. Kostur koji napravi App Wizard je dobar
ako ti hitno treba osnovna OLE funkcionalnost (drag & drop, OLE
dokumenti), a ne znaš ništa o toj problematici. Naravno, potpuno je
nedopustivo slepo se oslanjati samo na ovo ako hoćeš da napraviš
nešto ozbiljno, no, ne daje lošu osnovu.
Da je Visual C++ vizuelan - nije, a što je najcrnje i Visual J++ je
to još manje.
Lično, verovatno ću ostati pri toj alatki, pošto je svaki SDK koji
izađe prvo prilagođen njemu, a i zbog stvarno neprevaziđene
dokumentacije. Primamljivo zvuči i 'native COM' podrška koju
najavljuju za Visual C++ 5.0, baš me zanima šta im to znači.
A Borland bi mogao da nas uveseli tako što bi napravio nešto lepo
i vizuelno nalik na Delfi, samo za Javu. To su obećavali za početak
ove godine ali su naprasno odustali i izgleda batalili celu stvar.
cpp.149nenad,
>> ps. Bio sam ubeđen da već 3-4 godine postoji nekakav MS Visual C.
>> ;)
>
> Nisi u pravu, Nenade. Od Visual C je samo naslov takav da ljude
> "navuče" da misle da je to vizuelni jezik.
Znam, znam, samo malo provociram. ;) Čak ni nova verzija MSVC-a
neće imati ono što imaju npr. Delphi i VB. Najavljuju unifikaciju
razvojnih okruženja za verzije koje treba da dođu u 1998.
Pitanje sam inače postavio i zbog toga što znam za IBM-ov
VisualAge C++ koji postoji i za Windows (ako se ne varam nije ti
proradio kao valja?), a koji takođe ima RAD okruženje, prilično
slično (skoro isto) kao ono koje IBM koristi u drugim proizvodima
iz VisualAge serije (Smalltalk, COBOL, Generator, Basic, uskoro
Java...). U svima njima je moguće napraviti aplikaciju bez reda
ukucanog programa, a ako se koristi njihova biblioteka klasa
program će raditi i na Windows-u, OS/2, AIX-u i još nekoliko
Unix-a (po X-Windows/Motif standardu). Naravno, razmena i "reuse"
generisanih objekata se podrazumeva, ali to i nije zasluga
IBM-ovog razvojnog okruženja već SOM-a.
Inače, veoma mi se čini interesantnom ideja uključivanja
kompletnog Pascal kompajlera u novi Borland C++ Studio. Da li je
to prvi korak ka nečemu o čemu smo do pre neku godinu maštali -
mogućnost da "mešamo" jezike dok pišemo programe i aplikacije...
cpp.150nenad,
> Inače, veoma mi se čini interesantnom ideja uključivanja
> kompletnog Pascal kompajlera u novi Borland C++ Studio. Da li je
> to prvi korak ka nečemu o čemu smo do pre neku godinu maštali -
> mogućnost da "mešamo" jezike dok pišemo programe i aplikacije...
Btw, pitanje za one koji su videli to novo Borlandovo čedo - da
li je "uključivanje" i integracija delphi kompajlera na tom nivou
da se može raditi i u Pascal-u, sa mogućnošću uključivanja i
korišćenja neophodnih C/C++ biblioteka? Ili nema editora,
razvojnog okruženja, već je kompajler tu samo da bi Bulider
"gutao" Delphi komponente?
Za Maksu: piše da i Builder ima "potpunu" podršku za COM. ;)
cpp.151null,
A kada treba da se pojavi Boralndov C++ Builder.
NULL
cpp.152janko,
> A kada treba da se pojavi Boralndov C++ Builder.
Po poslednjim vestima kojima ja raspolažem, počeli su da ga štancuju.
Dakle, verovatno mart ili april -- moraju valjda da isplaniraju i
promociju, tako da padne u pogodno vreme, a još nisu ništa najavili,
pa ne očekujem ništa pre kraja marta.
Znam da se svud po svetu intenzivno održavaju demonstracije
C++ Buildera (verovatno ove verzije koja je "demonstraciona")
To je pravo pripremanje tržišta.
cpp.153nnedovic,
Kako mogu (ako uopste mogu) da nasledim klasu koja ima private clan
sa kojim treba da manipulisem, a nijedna protected/public funkcija ne
radi sa tim clanom ono sto meni treba? Poenta je u tome sto od 15
funkcija ja treba da promenim samo jednu, i to nesto sitno. Nije
valjda da moram da pisem citavu klasu opet? Mora da postoji neko
inteligentnije resenje.
cpp.154maksa,
>> Kako mogu (ako uopste mogu) da nasledim klasu koja ima private
>> clan sa kojim treba da manipulisem, a nijedna protected/public
>> funkcija ne radi sa tim clanom ono sto meni treba? Poenta je u
>> tome sto od 15 funkcija ja treba da promenim samo jednu, i to
>> nesto sitno. Nije valjda da moram da pisem citavu klasu opet?
>> Mora da postoji neko inteligentnije resenje.
Postoji, tako što izvedenu klasu proglasiš za friend klasu njene
osnovne. Ne znam koliko je to zdravo, ali na pr. :
#include <iostream.h>
class Osnovna {
friend class Izvedena;
public:
Osnovna() : Clan(0) {};
Osnovna(int Init) : Clan(Init) {};
private:
int Clan;
};
class Izvedena : public Osnovna {
public:
Izvedena(int Init) : Osnovna(Init) {};
Izvedena() : Osnovna() {};
// Ovde dosežeš privatni član klase iz koja je ova izvedena:
void DajClan() { cout << Osnovna::Clan << endl; };
};
void main() {
Izvedena I1(5);
I1.DajClan();
}
cpp.155nlazic,
Da li neko ima iskustva sa uključivanjem OCX komponent VisualC++ (v4.0)
projekte? Problem je u tome što ne znam kako da pristupim nekom propertiju
iz OCX komponente. VB ih lepo pronaĐe, Delphi manje-više, ali VC++ nikako.
cpp.156maksa,
>> Da li neko ima iskustva sa uključivanjem OCX komponent
>> VisualC++ (v4.0) projekte?
>> Problem je u tome što ne znam kako da pristupim nekom propertiju
>> iz OCX komponente. VB ih lepo pronaĐe, Delphi manje-više, ali VC++
>> nikako.
Kako si pokušavao da im pristupiš?
Pretpostavka za standardnu proceduru je da je taj OCX uredno
instaliran tj. registrovan, što u starti važi za sve OCX-ove koji
stižu uz VC++ (ako je ovaj uredno instaliran), tj. nije dovoljno
da se OCX samo postoji u SYSTEM direktorijumu. Al' to verovatno
nije koren problema.
Postoji par načina:
1) Klikneš desnim dugmetom na tvoj resurs (tj. dijalog), iz pop-up
menija izabereš "Insert OLE Control", i iz dobijene liste izabereš
neku od registrovanih kontrola. Pošto si samo ubacio kontrolu u
dijalog, a ne u projekat, kada u Class Wizard-u klikneš na tu
kontrolu (tab "Member Variables"), okruženje će da ti ponudi da za
tu kontrolu izgeneriše C++ klasu, što je kod mene uradio u 100%
slučajeva. (Class Wizard se aktivira klikom na dugme sa motivom
čarobnog štapića, ili izabereš Class Wizard iz pop-up menija koji
se pojavi kada desnim dugmetom klikneš na resurs, tj. dijalog)
2) Klikneš na Component Gallery dugme (ima sličicu sa plavom kockicom
u izometriji, slično ikoni RegEdit-a), i izabereš kontrolu iz
dobijenih spiskova, i klikneš na Insert, čime je ubacuješ u projekat.
U dijalog je ubacuješ dovlačenjem iz Controls plutajućeg prozora u
editoru resursa, i dalje je sve isto kao pod 1).
U oba slučaja design-time properties menjaš tako što u dijalogu
desnim dugmetom nabodeš konkretnu kontrolu i iz dobijenog pop-up
menija izabereš Properties (dosta logično ;). Run-time properties
menjaš preko funkcija članica klase koju je generisao Class Wizard,
al' to je već druga priča.
PS Ako ti se Class Wizard čudno ponaša, tj. "ne vidi" kontrole (ni
standardne Windows kontrole, ni OCX-ove) koje si ubacio u tvoje
dijaloge, to je verovano zbog nesklada između globalnih Windows
podešavanja (Control Panel, Regional Settings, što je kod tebe
možda Serbian ili Slovenian) i jezika za resurse projekta, koji
je po default-u "English (USA)" Ovo se sređuje ili tako što odeš
u VC-ov meni Build->Settings, izabereš Resources tab i tu namestiš
jezik da odgovara tvom globalnom Windows podešavanju, ili tako što
odeš u Control Panel -> Regional Settings i to namestiš na "English
(USA)". Ako izabereš ovo drugo rešenje, nije loša ideja da obučeš
pancir-košulju, pošto može da se desi da janko pokuša da te ustreli
iz snajpera zbog flagrantnog narušavanja bezbednosti, celokupnosti
i suvereniteta države. ;) (moderatore NHF, šala mala i nevina :).
cpp.157nlazic,
>> Kako si pokušavao da im pristupiš?
>> Pretpostavka za standardnu proceduru je da je taj OCX uredno
>> instaliran tj. registrovan, što u starti važi za sve OCX-ove koji
>>
>> Postoji par načina:
Sve je to OK i sve to lepo radi, ali
>> Run-time properties
>> menjaš preko funkcija članica klase koju je generisao Class Wizard,
>> al' to je već druga priča.
upravo u ovome je problem. Naime, neke od ovih funkcija vraćaju objekte, koji
imaju svoje funkcije članice i propertyje kojima ne mogu da pristupim. U
stvari nisam mogao do sada :) Problem sam rešio tako što sam napravio nove
klase iz ClassWizarda, opcijom Create new class -> From an OLE TypeLib. On
ovde traži da se unese .TLB ili .OLB datoteka, koju ja nemam, ali stvar je
prošla sasvim korektno kada sam mu uneo .OCX (što piše u helpu) i .DLL (što ne
piše u helpu) datoteke. Sada imam nove klase (koje, do duše, ClassWizard ne
vidi) koje nasleđuju COleDispatchDriver i mogu da pristupim propertyjima i
metodima na proizvoljnoj dubini.
Sve u svemu, ceo mehanizam nije ništa napredniji od onog u Delphiju. Prosto ne
mogu da verujem da VisualBasic najbolje radi sa OCX-ovima. Ostaje još da
vidimo Delphi 3.
Tebi puno hvala na pomoći, zaista je čudna ona fora sa Regional Settings.
>> odeš u Control Panel -> Regional Settings i to namestiš na "English
>> (USA)". Ako izabereš ovo drugo rešenje, nije loša ideja da obučeš
>> pancir-košulju, pošto može da se desi da janko pokuša da te ustreli
>> iz snajpera zbog flagrantnog narušavanja bezbednosti, celokupnosti
>> i suvereniteta države. ;) (moderatore NHF, šala mala i nevina :).
Nema problema, tamo mi stoji "Croatian" :)
cpp.158janko,
> (USA)". Ako izabereš ovo drugo rešenje, nije loša ideja da obučeš
> pancir-košulju, pošto može da se desi da janko pokuša da te ustreli
> iz snajpera zbog flagrantnog narušavanja bezbednosti, celokupnosti
> i suvereniteta države. ;) (moderatore NHF, šala mala i nevina :).
:)) Mislio sam da je jasno zašto pričam to što pričam -- zbog
normalnih korisnika. Onih kojima neko natrpa 300 loših fontova
("trebaće im") iako nikada u životu neće raditi ništa osim pisati
dopise. I koje "stručnjaci" i dodatno unesreće skoro svime što
urade...
Sa druge strane, PROGRAMERE ne smatram za NORMALNE korisnike. Oni su
svesni šta rade (trebalo bi, bar). Njima je sve dozvoljeno, pogotovu
u cilju upoznavanja sa novim tehnologijama. Microsoft Developer
Network, recimo, distribuira i lokalizovane verzije operativnih
sistema, ali najbolju podršku daju samo američkoj verziji. Njihova je
politika "razvijajte na američkoj, a posle dajte korisnicima
francuske, nemačke..." Nekada se to ne može izbeći...
cpp.159zokipo,
Ljudi dobre volje pomagajte ...
Evo o cemu se radi :
Ja i ortak radimo na radiju, i razvijamo maleno programce koje
treba da kontrolise linijski ulaz na SB-u ( na taj ulaz dolazi signal sa
satelita ), tj. po unapred zadatom vremenskom obrascu ( tipa od xx do xx
minuta ) on spusta nivo linijskog ulaza na zadatu vrednost, izvrsava
WPLAY ( tj. ubacuje .WAV fajl koji je zapravo identifikacioni dzingl )
odsvira ga i vrati linijski nivo na pocetnu vrednost. ( i za divno cudo
to sve RADI ... ;> )
Sada smo dosli na ( kako ce se ispostaviti ) suludu ideju da detektujemo
prisustvo signala na linijskom ulazu ( po srpski - da li nam satelit uopste
svira ili se ucut'o ), pa ako signala nema da program automatski startuje
CD-ROM i pusti u program CD koji bi jel'te za datu namenu u isti bio i
ostavljen.
Ako vam je poznat nacin da se malom nesretnom programu objasni kako da
uradi ovo sto nama treba, bilo bi to strava ( citaj MA WR ZOKIPO, uz
eventualno MA ATT xxxxxx ). Moze sorce, moze ideja moze bilo sta, jerbo
nas dva nista pametno nismo smislili ...
Toliko, bye ... :>>>>
cpp.160qpele,
Hitno mi je potreban fajl defs.h iz Borlandovog C++ , nalazi se u direktorijumu
/classlib/include
Unapred hvala
cpp.161qpele,
Imam problem sa ubacivanjem kolekcije u listbox. Mislim da je problem u
definisanju kolekcije. Evo ga sorce uz poruku pa bi mi bilo neobicno drago da
ga neko promeni tako da sve funkcionise
tvdial.cppcpp.162guta,
Internet Mail Suite
Sve što vam je potrebno da napravite Internet Mail aplikaciju, ili da
dodate mail u vaše postojeće aplikacije. SMTP, POP, Message komponente,
bez limita od 900Kb za attachment-e, automatsko MIME i UUEncode/UUDecode
kodiranje/dekodiranje, i mnogo drugih, lepih stvari :)
Verzija za Borland C++Builder
cpp.163guta,
Internet Mail Suite
Sve što vam je potrebno da napravite Internet Mail aplikaciju, ili da
dodate mail u vaše postojeće aplikacije. SMTP, POP, Message komponente,
bez limita od 900Kb za attachment-e, automatsko MIME i UUEncode/UUDecode
kodiranje/dekodiranje, i mnogo drugih, lepih stvari :)
Verzija za Borland C++Builder
imsbcb.zipcpp.164vtosev,
Za one koji nisu uzeli arhivu radi se o TurboVision-u.
Broblem donekle nije u tebi nego u Borlandu.
Da krenem redom.
Imaš grečku u tvom programu:
> Koll *k;
Ovo ne znači ništa već moraš:
Koll *k = new Koll;
Nadalje i da si to uradio ne bi vredelo ništa pošto Borlandova klasa TListBox
ne radi posao, čemu je namenjena, kako treba. Sa tim sam se ranije sreo i
problem rešio na taj način što sam napravio klasu TMyListBox koja rešava
problem (nisam budžio po njihovom kodu mada je to možda bolje rešenje. Greška
je u funkcijama TListBox::setData, TListBox::getData, TListBox::getText.).
Šaljem ti moj kod za dotičnu klasu i tvoj malo izmenjeni program i to sve radi
kada ga prevedeš.
Vlada
tv.zipcpp.165qpele,
Vec sam pisao i ostao bez odgovora, pa evo jos jednom mog poroblema.
Imam problema sa ubacivanjem listbox-a u dialog.
Evo deo sorca:
TDiaog *pd=new TDialog (TRect(17,6,2,18),"proba");
if (pd)
{
Koll *k=new Koll();
TListBox *list=new TListBox(TRect(20,3,40,6),1,0);
pd->insert(list);
k->insert(newStr("pera"));
k->insert(newStr("mika"));
list->newList(k);
pd->insert(new TLabel(TRect(20,2,40,3),"p",list));
TDialogData dialogData;
pd->setData(&dialogData);
int cmd=deskTop->execView(pd);
....
Koll sam definisao oovako :
class Koll:public TStringCollection
{public:
Koll();
}
Koll::Koll() :
TStingCollection(10,10)
{return;}
cpp.166null,
Imam problema sa programiranjem neznam da li je do mene ili do borlanda 4.5
Naime problem je sto prilikom kompajliranja dobijem gresku na dva mesta tipa
'To many types in declarations', jednu u mom header fajlu a drugu u <math.h>
U cemu je problem ?? (napominjem imena koja se ponavljaju )
Dejan
P.S. Saljem sorce uz poruku
zupcanik.arjcpp.167guta,
- novo -
windows\program\c\*.*
------------------
bcdemo.arj 500k ű Borland C++Builder demo (#1/6)
bcdemo.a01 500k ű Borland C++Builder demo (#2/6)
bcdemo.a02 500k ű Borland C++Builder demo (#3/6)
bcdemo.a03 500k ű Borland C++Builder demo (#4/6)
bcdemo.a04 500k ű Borland C++Builder demo (#5/6)
bcdemo.a05 488k ű Borland C++Builder demo (#6/6)
cpp.168firus,
> Imam problema sa programiranjem neznam da li je do mene ili do
> borlanda 4.5
Na tvoju žalost, problem nije do BC-a već *ISKLJUČIVO* do
tebe. Radi se o elementarnom nepoznavanju C++ kao programskog
jezika. NHF, ali tako je.
No, da rezimiramo:
1) u klasi cil_zupcanik imao si promenljivu modul tipa
float, ali i funkciju koja vraća integer koja se isto zove. E, to
ne može, zato sam preimenovao f-ju u fmodul().
2) kada definišeš/deklarišeš klasu, posle zatvorene
vitičaste zagrade OBAVEZNO moraš da staviš tačku-zarez tj. nekako
ovako:
class Moja_klasa {
...
...
};
zbog nepostojanja tačke-zareza dobijao si narečenu grešku.
> dva mesta tipa 'To many types in declarations', jednu u mom
^^
Dva 'o' ... B))
> P.S. Saljem sorce uz poruku
^^^^^
Source (jaliti sors).
zupcanik.zipcpp.169maksa,
>> - novo -
>>
>> windows\program\c\*.*
>> ------------------
>> bcdemo.arj 500k ű Borland C++Builder demo (#1/6)
>> bcdemo.a01 500k ű Borland C++Builder demo (#2/6)
Je l' ovo neka ograničena funkcionalna verzija, ili samo vrti
slike i priča priče?
cpp.170mcar,
Evo ponovo pitanja za raspravu:
Da li ce BORLAND preziveti, cujem da su mu akcije drasticno pale. MC
cpp.171guta,
#> Je l' ovo neka ograničena funkcionalna verzija, ili samo vrti
#> slike i priča priče?
Na žalost, samo "vrti slike" :( Ograničena funkcionalna verzija, što će
reći "pravi" demo je oko 22Mb... Mnogo za dl/ul :)
cpp.172bokir,
U programu imam klasu, otprilike ovako:
class A {
public:
A();
};
class B {
public:
A& x;
B( A& y ) {x = y;}
};
int main()
{
A k;
B j(k);
}
E, sad, kompajler se buni kod ovog 'x = y', i kaže nešto kao
'Member B::x does not have an initializer'.
U čemu je stvar?
cpp.173maksa,
>> E, sad, kompajler se buni kod ovog 'x = y', i kaže nešto kao
>> 'Member B::x does not have an initializer'.
>> U čemu je stvar?
Ima verovtano nekoliko stvari, a prva i najbitnija (zbog koje se
kompajler buni) je pogrešna upotreba referenci (A& x):
>> class B {
>> public:
>> A& x;
>> B( A& y ) {x = y;}
>> };
Ovde si deklarisao A&, tj referencu na objekat.
Reference se _obavezno_ inicializuju pri deklaraciji, a kompajler ti
je prijavio da to nisi uradio. Kada ukloniš referencu, to jest proglasiš
x za pravi objekat klase A, kompajler će da prestane da se buni.
Da li imaš neki vrlo jak razlog da x bude baš referenca (A& x) a
ne "živ" objekat (A x)?
Kada to rasčistiš javi se sa konkretnim primerom da pričamo o tome
kako (i zašto) ćeš stvari da inicijalizeš u konstruktoru.
cpp.174obradovic,
> class B {
> public:
> A& x;
>
> B( A& y ) {x = y;}
> };
> E, sad, kompajler se buni kod ovog 'x = y', i kaže nešto kao
> 'Member B::x does not have an initializer'.
Kompajler se ne buni kod x=y već zato što referenca nije
inicijalizovana u konstruktoru.
To bi u C++ trebalo ovako da izgleda, ako baš mora referenca
da bude član klase
class B: {
public:
A& x;
B(A& y) : x(y) {}
};
tj. inicijalizacija se obavlja prije samog tijela konstruktora,
a ono unutar {} je samo dodjeljivanje vrijednosti.
cpp.175bokir,
> Da li imaš neki vrlo jak razlog da x bude baš referenca (A& x) a
> ne "živ" objekat (A x)?
Razlog imam, a koliko je jak... :)
Naime, hteo sam da nekoliko klasa može da pristupa istom objektu,
(koji, inače, operiše nad nekim nizom) i da se u svim objektima tih klasa
vidi promena ovog niza. To, naravno, može preko pointera, ali mi je bilo
suviše glomazno da stalno pišem (*x)[k], hteo sam da to 'x' bude referenca
pa da onda mogu lepo da napišem x[k]. Takođe, nisam hteo da taj objekat
deklarišem kao globalnu promenljivu...
> Kada to rasčistiš javi se sa konkretnim primerom da pričamo o tome
> kako (i zašto) ćeš stvari da inicijalizeš u konstruktoru.
Znam kako da inače da inicijalizujem "žive" objekte, ali nisam hteo da mi
referenca "oživi", nego da dotični objekat bude argument konstruktora, pa
da se posle samo postavi referenca na njega, s obzirom da će i neki drugi
objekti imati isti argument.
Što se primera tiče...sve ovo što sam pisao je suviše veliko, i evo
nečega što liči:
class IArray {
private:
int *niz;
public:
IArray( int *a ) { niz = a; }
int& operator [] (int i) { return niz[i]; }
};
class Sorter {
private:
IArray& n;
public:
Sorter( IArray& );
void sort();
};
Sorter::Sorter( IArray& p )
{ n = p; }
void main()
{
static int k[] = {1, 2, 3, 4};
IArray ia(k);
Sorter s(ia);
}
cpp.176space.ace,
C++ Builder Professional mi non-stop smanjuje prostor na disku, iako nisam
sačuvao niti jedan projekat (dobro, one koje sam sačuvao, sačuvao sam ih
na drugoj particiji), ceo direktorijum u kome je Builder stalno raste.
Ima li neko ideju što?
Moraću da ga držim pod prismotrom jedno vreme, jer mu je i najobičniji
mali projekat i do 7MB, pojma nemam kako...
cpp.178vasic,
> C++ Builder Professional mi non-stop smanjuje prostor na disku, iako nisam
> sačuvao niti jedan projekat (dobro, one koje sam sačuvao, sačuvao sam ih
> na drugoj particiji), ceo direktorijum u kome je Builder stalno raste.
Precompiled headers? Nemam Builder, ali to je bilo ono što je još i u
starim Borlandima umelo da naraste do epskih razmera. Al' zato kad ih
obrišeš... ih miline! :)
cpp.179null,
> C++ Builder Professional mi non-stop smanjuje prostor na disku, iako nisam
> sacuvao niti jedan projekat (dobro, one koje sam sacuvao, sacuvao sam ih
> na drugoj particiji), ceo direktorijum u kome je Builder stalno raste.
Ehej a gde si nabavio builder :) , hteo bi i ja. BTW neko mi je pre jedno 15
dana otvorio oci da posle definicije klase treba stoji ; i za to sam mu jako
zahvalan i ovom prilikom mu se zahvaljem.
cpp.180nenad,
IBM-ov VisualAge C++ verzija 4 će ući u beta fazu u julu.
Što se IBM-a tiče, možete da zaboravite na .H fajlove, ali i
deklaracije funkcija, klasa... Novost je i "inkrementalno"
kompajliranje na nivou blokova koda, dakle ne na nivou fajlova,
što, prema njihovim rečima, može da ubrza "build" velikih
projekata i do 10 puta.
Uz poruku je PDF fajl od 10-ak strana u kome se opisuju glavni
noviteti u samom kompajleru, a tu je i nekoliko ukradenih ekrana
- ako ništa drugo, radno okruženje izgleda zaista inreresantno.
Tokom leta, dakle, treba da se pojave beta verzija za OS/2 i NT,
a nakon njih uslediće i verzije za druge podržane operativne
sisteme - uglavnom druge IBM-ove OS-ove i najpoznatije verzije
Unix-a (AIX, Solaris, HP/UX...). IBM-ov OCL (Open Class Library)
omogućava razvoj pravih multi-platform aplikacija.
vagecpp4.rarcpp.181null,
Posto sam skoro nabavio Borladnov C++ Builder, a nemam iskustva sa delfijem i
builderom, pa me zanima:
npr.
Imamo ojekat Form1(klase TForm1) i ubjekat u njoj Edit1(klase TEdit1), sad
ja zelim da promenom teksta u teks box-u da dobijem taj isti tekst kao
Caption u obejektu Form1.
Unapred hvala,
Dejan Lozanovic
cpp.182mcar,
Da li C++ Builder moze da generise i 16-bitne aplikacije?
Hvala na odgovoru
Marko
cpp.183obren,
> Da li C++ Builder moze da generise i 16-bitne aplikacije?
Ne može, kao ni DOS aplikacije, za to je potrebno nabaviti Borland C++ 5.0
koji je odvojen paket od Buildera.
cpp.184omega,
Da li je neko video na delu inkrementalni linker iz BC++ v5.02?
cpp.185bokir,
Bug or feature?
Nikako ne mogu da nateram Watcom C++ 10.0 da poštuje #pragma aux
direktive.
Recimo, jedna funkcija mi je deklarisana kao:
extern "C" {
int vlSetMode( unsigned short mode );
#pragma aux vlSetMode parm [BX] value [EAX];
}
A Watcom uporno generiše sledeći kod:
; vlSetMode(0x101);
mov ecx,00000101H
push ecx
call near ptr vlSetMode_
On čak stavlja i 'push ecx', a ja koristim 'register calling convention'!
cpp.187sfilip,
Jeli, zna li mi neko pomoći kod "unresolved external '_main' referenced from
module c0nt.asm"?
kompajler je borlandov 5.00!
cpp.188sfilip,
ok, da pitam opet... čemu Tačno služi buildco, za pravljenje startup modula,
tj, čemu služe dotični?
cpp.189obren,
> ok, da pitam opet... čemu Tačno služi buildco, za pravljenje startup
> modula, tj, čemu služe dotični?
Startup modul je kôd koji se prvo izvrši pri startovanju tvog C/C++
programa a u njemu se nalaze razne inicijalizacije, preuzimanje interapt
vektora, alokacije memorije i sl. Ukoliko imaš specijalne potrebe u vezi
sa startup kôdom i znaš kako to da uradiš (što ti, rekao bih, ne znaš pa
ti ne bih preporučio da menjaš c0*.* fajlove) možeš prilagoditi priloženi
.ASM fajl i pomoću buildc0.bat programa ga asemblirati u .OBJ koji se
linkuje u izvršni fajl.
cpp.191mcar,
Da li je moguce preopteretiti new operator posebno za odredjenu klasu?
Marko
cpp.192janko,
> Da li je moguce preopteretiti new operator posebno za odredjenu
> klasu?
Da, još od prvih dana jezika C++, mada je tada to rađeno veoma
uvrnuto. Sada samo deklarišeš new operator u klasi.
cpp.193bokir,
U C++Builderu imam jedan Data Modul sa tabelom i DataSource-om, sve uredno
povezano...E, sad, kad probam da "ručno" otvorim tabelu (koja ne postoji
na disku), javlja se "Access Violation", a takođe i kad pokušam da je kreiram
sa CreateTable().
Kako da lepo iz programa napravim ovu tabelu?
cpp.194bokir,
Kako da u C++Builderu kreiram indeks za Paradox tabelu?
cpp.195van.gog,
Aloha people.
Evo jedan maaali problemcic ako je neko dobre volje da mi
pomogne. Radi se o programu za pustanje audio CD-a.
Kod greske sam napisao mali komentar kako sam ispravio istu
ali opet prog nece da radi. (CD cuti - jelte')
Evo ide source.
cd.rarcpp.196jjerry,
Sta si bre zapeo sa tim CD-ovima :) Btw. na kol'ko jezika ti mislis
da pises to ? ;))
Poz.
cpp.197kajko,
Hitno mi je potrebno da se bacim na MFC (inače, radim u Borlandovom C++-u),
zna li neko nečto o tome i gde mogu da se obratim za literaturu.
KAJKO
cpp.198janko,
> Hitno mi je potrebno da se bacim na MFC (inače, radim u Borlandovom
> C++-u), zna li neko nečto o tome i gde mogu da se obratim za
> literaturu.
Moja preporuka: instaliraj kod sebe MS VC 4.0 ili viši, prođi
njihov tutorial, i znaćeš o MFC dovoljno za početak.
cpp.199sigmund,
Vidi poruku u cccc 9.434
cpp.200qpele,
Kako da u msgbox-u ispisem poruku u vise redova?
(Borland CPP for win)
cpp.201embe,
>>Kako da u msgbox-u ispisem poruku u vise redova?
>>
>>(Borland CPP for win)
Tako sto ces da:
"Usred stringa\npostavis znak\nza novi red" tj.
Usred stringa
postavis znak
za novi red
cpp.202bokir,
Kako da u C++Builderu ubacim indekse za neku tabelu?
cpp.203kajko,
>> Moja preporuka: instaliraj kod sebe MS VC 4.0 ili viši, prođi
Ja sam instalirao MS VC 4.1 i sve radi kao treba, nego mene interesuje
literatura za uvod u MFC...
KAJKO
cpp.204mradovic,
> Ja sam instalirao MS VC 4.1 i sve radi kao treba, nego mene interesuje
> literatura za uvod u MFC...
Preporucio bih ti knjigu Inside Visual C++, David J. Kruglinski,
Microsoft Press. Mislim da se orginal moze naci u CET-a, kao i
orginalna dokumentacija za MSVC.
Pozdrav, Mirko.
cpp.205stameni,
Kako se u C++ koriste specifikatori formata tipa float (ako se
to tako zove) kod izlaza sa cout? Znam kako je u C-u, ali ne znam
kako to ovde izvesti. Ako nisam bio jasan, evo primera koji me
zavitlava:
#include <iostream.h>
main()
{
float f;
cout << "Unesite broj: ";
cin >> f;
cout << "Uneli ste " << f << "\n";
// Hteo bih da gornji red bude poput printf("Uneli ste %8.2f\n", f);
return 0;
}
Objasnite početniku :)
cpp.206vasic,
> Kako se u C++ koriste specifikatori formata tipa float (ako se
> to tako zove) kod izlaza sa cout?
To se radi sa tzv. manipulatorima. U onom tvom primeru, ekvivalent
za printf("Uneli ste %8.2f\n", f) bio bi:
#include <iostream.h>
#include <iomanip.h>
//...
cout << "Uneli ste " << setw(8) << setprecision(2) << f << "\n";
Ne bih sad da se raspisujem mnogo o njima jer u stvari i ne znam
mnogo o njima. :) Kad mi zatreba formatirani ispis obično posegnem
za odgovarajućim C funkcijama. Navika, šta ćeš.
cpp.207bokir,
Jel moze neko da dovuce sa Borlandovog sajta updateove za C++Builder
Help fajlove?
cpp.209bgolusin,
Da li postoje neke API funkcije ili DLL koji se moze pozvati iz VB a
koje rade isto sto i inport() i outport() iz TC 2.0.
Unapred HVALA !!!
cpp.210biber,
>> Error: Can't find Visual C++ PDB DLL in path.
>> Add Visual C++ BIN directory to path.
Ovo mi ispisuje SoftIce kad pokusam da debagujem
program pisan u VC++.
O cemu se radi, i ima li neko potreban DLL?
cpp.211stameni,
>> >> Error: Can't find Visual C++ PDB DLL in path.
>> >> Add Visual C++ BIN directory to path.
>>
>> Ovo mi ispisuje SoftIce kad pokusam da debagujem
>> program pisan u VC++.
Imao sam sličan problem kad sam radio u BC++ 3.1, kada sam
pokušavao da iz Windowsa (3.1) pokrenem DOS-ov kompajler.
Ispostavilo se da BC.EXE nije bio na stazi (path), pa sam dobijao
slične poruke. Dodatak za path poput c:\borlandc\bin mi je rešio
problem.
cpp.212biber,
>> >> >> Error: Can't find Visual C++ PDB DLL in path.
>> Imao sam slican problem kad sam radio u BC++ 3.1, kada sam
>> pokusavao da iz Windowsa (3.1) pokrenem DOS-ov kompajler.
>> Ispostavilo se da BC.EXE nije bio na stazi (path), pa sam dobijao
>> slicne poruke. Dodatak za path poput c:\borlandc\bin mi je resio
>> problem.
Kompajler je u path-u. Nemam poteban dll, a ni ne znam
koji je, s obzirom da "Error..." kaze samo "PDB DLL"
cpp.213biber,
Ima li neko da mi posalje PREP.EXE iz VC?
cpp.214jpedja,
Hi!
Interesuje me da li bi neko mogao da me uputi koju
literaturu bih trebao da kupim kao apsolutni pocetnik
u C/C++ programiranju, ja sam trazio neke cet i mikroknjiga
knjige, mdjutim imam utisak da je to poprilicno konfuzno
za pocetnika. Da li postoji neki udzbenik za neki fakultet,
ili bilo sta drugo...
Znam da ovde ima jako dobrih programera C-u pa ako nekog
ne mrzi neka me uputi..
Hvala unapred,
Pedja
cpp.215jpedja,
Ako je neko voljan da proda ili da mi ustupi knjigu da fotokopiram
(C++ za pocetnike...)
neka mi napise mail...
Takodje ako zna da me uputi na literaturu....
Pzdrav,
Pedja
cpp.216pvlada,
> za pocetnika. Da li postoji neki udzbenik za neki fakultet,
> ili bilo sta drugo...
Mi u MG koristimo CE Osnovi Programiranja od Milana Čabarkape,
ali to je verovatno previše malo.
Pozdrav Vlada
cpp.217qpele,
potreban file cmplib32.ccl za C++ Builder
cpp.218bokir,
> potreban file cmplib32.ccl za C++ Builder
Stiže :)
cmplib32.zipcpp.219qpele,
C++ Builder prilikom otvaranj cmplib32.cll javlja mi poruku tipa
ne mogu da otvorim file, error code 1157.
Moze li mi neko objasniti sta je error code 1157?
cpp.220qpele,
Imam problem sa C++ Builderom, naime kad u izaberme opciju new
i u tom prozoru izabreme bilo sta, npr. dialogs with help, javlja mi gresku
tipa : can't find both forms and source file.
Verovatno mi fale neki fajlovi, pa ako bi neko mogao da me uputi gde bi ti
fajlovi trebalo da se nalaze da bih video da li ih imam ili ne.
cpp.221drejk,
E, pazte ovako, dal ima neko u fajl obliku neke infoe, textove ili
knjige dakle u obliku fajla za pochetnike koriscenja ovog, dakle,
jelte, programskog jezika... eto...
a ako nema, nek preporuchi neke knjige za ttttttttttotalne
pochetnike...
do sada sam radio na bejziku, malo pascalu i sad eto, dakle, jelte,
cpp..
cpp.222qpele,
Opet ja sa problemom iz C++ Buildera. Naime imam verziju koja mi pravi exe
fileove koji mogu da se startuju samo iz Builderovog editora. Da li ja to
imam debilnu verziju, na sta sve ukazuje, ili su ovi iz Borlanda idioti?
cpp.223jujo,
# E, pazte ovako, dal ima neko u fajl obliku neke infoe, textove ili
# knjige dakle u obliku fajla za pochetnike koriscenja ovog, dakle,
# jelte, programskog jezika... eto...
#
# a ako nema, nek preporuchi neke knjige za ttttttttttotalne
# pochetnike...
# do sada sam radio na bejziku, malo pascalu i sad eto, dakle, jelte,
# cpp..
Zajebi ++....nauci prvo C pa se zezaj sa ++. Ja sam VEOMA dugo radio
u C-u i kad sam presao na ++ popizdeo sam jer me sputava u nekim
osnovnim stvarima koje bi trebalo da dopusti. Npr...Pisanje
jednostavnih programa tipa "prekonvertuj mi input file iz word formata u
txt" postaje neverovatno komplikovano, dok ako pises neki ogroman program
u kome imas gomilu struktura i operacija nad njima sa sve kombiacijama
nad istim C++ dodje ko kec na 10....U svakom slucaju....nauci prvo C
pa tek onda C++.
yooyo:
P.S.: A da li si probao JAVU!!!!
cpp.224drejk,
Da li sam prrobao javu?? Ne verujem da to pali na mojoj makini...
(386 4mb rama...). Prilichno me fascinira i mashinski kod ;) mada
znam sta svi misle o tome :)
Dakle, pitanje ostaje, ima li ko neke tekstove o cpp-u koji bi
koristili pochetniku...
cpp.225maksa,
>> Zajebi ++....nauci prvo C pa se zezaj sa ++.
Ne slažem se sa ovim. Nek' uči C++, a C (kao podskup) će i tako
morati da nauči usput.
>> Npr...Pisanje jednostavnih programa tipa "prekonvertuj mi input file
>> iz word formata u txt" postaje neverovatno komplikovano,
Šta je to "neverovatno komplikovano"?
Postoji jedna (ili dve, zavisi kako gledaš) fundamentalne razlike
između običnog C-a i onog C-a koji je podskup C++-a. To su: obavezne
deklaracije i provera tipova. Uredno i dobro napisan C program po
pravilu prolazi kroz C++ prevodilac bez problema.
>> dok ako pises neki ogroman program u kome imas gomilu struktura i
>> operacija nad njima sa sve kombiacijama nad istim C++ dodje ko kec
>> na 10....
Ovo je uvrežena predrasuda, i pogrešna je. C++ je podjednako dobar za
pisanje malih programa kao i C. Štaviše, C++ je bolji za pisanje malih
programa od C-a.
>> U svakom slucaju....nauci prvo C pa tek onda C++.
Ponavljam, ne slažem se sa ovim. Ne može da nauči C++ a da usput ne
nauči C. Pošto je već tako, nek' uči odmah C++, od nule.
Ukoliko bude krenuo putem koji mu predlažeš zadesiće ga iste frustracije
na koje se ti žališ kada si prelazio sa C-a na C++.
>> P.S.: A da li si probao JAVU!!!!
Java je, s obzirom na to da *nije* za sobom morala da vuče C
kompatibilnost, po pitanju novih ideja i prog. koncepta dobrano
podbacila. Čak je potpuno nepotrebno ponela sa sobom neke C gluposti.
cpp.226maksa,
>> Da li sam prrobao javu?? Ne verujem da to pali na mojoj makini...
>> (386 4mb rama...). Prilichno me fascinira i mashinski kod ;) mada
>> znam sta svi misle o tome :)
>>
>> Dakle, pitanje ostaje, ima li ko neke tekstove o cpp-u koji bi
>> koristili pochetniku...
Na 384/40Mhz/4Mb će sasvim fino da radi Borland C++ 3.1. Ja ga više
nemam pa ćeš tu morati nekako da se snađeš, ali za simboličnih 0 DIN
mogu da ti ponudim knjigu koja pokriva tu verziju - Borland C++ Tehnike
Programiranja, u izdanju Mikro Knjige.
cpp.227jujo,
# >> Npr...Pisanje jednostavnih programa tipa "prekonvertuj mi input file
# >> iz word formata u txt" postaje neverovatno komplikovano,
#
# Sta je to "neverovatno komplikovano"?
# Postoji jedna (ili dve, zavisi kako gledas) fundamentalne razlike
# izmedu obicnog C-a i onog C-a koji je podskup C++-a. To su: obavezne...
Izraz "neverovatno komplikovano" sam upotrebio zbog nametanja nekih
resenja u C++ koja su u C-u elegantnije resena. Primer za to je
error handling, koji je u C-u resen signalnim funkcijama, a i C++
budzevinom koja je nazvana Exeptions.
# ... deklaracije i provera tipova. Uredno i dobro napisan C program po
# pravilu prolazi kroz C++ prevodilac bez problema.
Jednom prlikom sam sa ortakom razvijao biblioteku
za brzo izracunavanje vrednosti izraza koji je funkciji prosledjen
kao string. Rezultat svega toga je bio da je brzina bila oko 10-15%
sporija nego funkcija koju prevede sam kompajler. E u jednom delu
koda stajalo je ovako:
typedef struct { int npar;
double (*func)();
} FUNC;
... i kasnije u programu...ptr je pokazivac na FUNC
switch (a) /* koliko parametara ima funkcija */
{
case 1: res=ptr->func(par1);
break;
case 2: res=ptr->func(par1, par2); // C++ me je na ovom mestu
// zatrpao sa greskama...
// kaze nesto o broju parametara
break;
}
Ja u gornjem programu nisam nista prljavo koristio, jer to sto sam
napisao, uradio sam sa namerom da napravim program sto brzim, pa me
sad zanima zasto bi ja tako nesto zavijao u klase. C++ znam i ponekad
programiram u njemu, ali jako retko jer...spomenuh vec da me sputava
u razmisljanju. Objektnih principa se drzim ali na nivou C-a.
yooyo:
cpp.228bokir,
> Opet ja sa problemom iz C++ Buildera. Naime imam verziju koja mi pravi
> exe fileove koji mogu da se startuju samo iz Builderovog editora. Da li
> ja to imam debilnu verziju, na sta sve ukazuje, ili su ovi iz Borlanda
> idioti?
Ne, postoji jedna verzija Buildera koja služi samo za učenje Windows 95
programiranja, i ona dozvoljava da se programi startuju samo iz okruženja.
Bolje nabavi Professional ili Client/Server verziju.
cpp.229kojai,
Ovako... Inicijalizovao sam WAV koji je 24 bitni, 54000 Hz...
Naravno na 16 bitnoj kartici ne mogu da ga pustim, pa me zanima da li ima
sanse da ovo radi na AWE 32 ili 64?
Program je uradjen u Visual C-u pod DirectX-om(DirectSound-om)!
Ako je neko zainteresovan mogu mu dati DLL koji sam uradio pa da pokusa da
pusti na nekoj jacoj kartici...
Inace program radi po principu sto mu u sempleru(koji sam pravio) napravim
sample bass-a... Znaci najobicnija rutina... U 16 bit i manje pusta bez
problema, ali vise "NEZNAM"! :)
Da, trebalo bi mi i rutine za distorziju tj. za integraljenje talasa...
Znaci emulator kao da je prikljucen kondenzator ili kalem na ulazu!
cpp.230kojai,
Instalirao sam onaj shit od Visual C++ 5.0!
Pojavi mi se onaj budjavi explorer i otvorim njihov primer, ocu da ga
iskompajliram i ono krene ali stane i nista ne radi... Ni disk ni procesor!
Zanima me sto se ovo desava i 4.0 nisam imao problema!
cpp.231kojai,
Kako pod VC 5.0 da inicijalizujem strukturu za ispis buffera... BitBlt!
cpp.232kojai,
Ovaj VC 5.0 pod explorerom nece da kompajlira...
Krene da radi, pojavi se ono sranje dole i stane!
Sta je po sredi?
cpp.233jpedja,
Hi
Imam jedan pocetnicki problem, koji ce se vama verovatno
uciniti smesan, zanima me koom komandom mogu da neki tekst
odstampam na printeru, da li uopste postoji komanada ili treba
malo duze da se kucka... ;)
Hvala unapred, pedja
..
cpp.234kojai,
>> Imam jedan pocetnicki problem, koji ce se vama verovatno
>> uciniti smesan, zanima me koom komandom mogu da neki tekst
>> odstampam na printeru, da li uopste postoji komanada ili treba
Mozes najobicnije tako sto ces da otvoris file koji nosi naziv LPT?, znaci:
Assign(f, 'LPT1');
Reset(f);
Write('test'#12);
Close(f);
#13 ti je sledeci red, a #12 da izbaci stranu...
cpp.235jujo,
Ajde ako ima neki zivi Watcom-ovac neka pogleda da li negde ima
na instalacionom CD-u podrsku za QNX operativni sistem. Ako ima
zamolio bih ga da mi to nekako posalje.
yooyo:
cpp.236bokir,
> Ajde ako ima neki zivi Watcom-ovac neka pogleda da li negde ima
> na instalacionom CD-u podrsku za QNX operativni sistem. Ako ima
Na Watcom 11.0 disku nema ni pomena o QNX-u...
cpp.237nenadt,
> > Ajde ako ima neki zivi Watcom-ovac neka pogleda da li negde ima
> > na instalacionom CD-u podrsku za QNX operativni sistem. Ako ima
>
> Na Watcom 11.0 disku nema ni pomena o QNX-u...
to sam mu i ja rekao, međutim ne sluša.
cpp.238jujo,
# > > Ajde ako ima neki zivi Watcom-ovac neka pogleda da li negde ima
# > > na instalacionom CD-u podrsku za QNX operativni sistem. Ako ima
# >
# > Na Watcom 11.0 disku nema ni pomena o QNX-u...
#
# to sam mu i ja rekao, medutim ne slusa.
#
Pa gde da to nadjem!!! Imate li neku ideju.
yooyo:
cpp.239nenadt,
> # > > Ajde ako ima neki zivi Watcom-ovac neka pogleda da li negde ima
> # > > na instalacionom CD-u podrsku za QNX operativni sistem. Ako ima
> # >
> # > Na Watcom 11.0 disku nema ni pomena o QNX-u...
> #
> # to sam mu i ja rekao, medutim ne slusa.
> #
>
> Pa gde da to nadjem!!! Imate li neku ideju.
>
pa ako ti je baš frka, iskompajliraću ti ja direktno na QNX-u.
javi se na tel: 3546-218 bilo kad posle 12h
cpp.240dzakic,
From: Sasa.Babic@triss.se
Date: Tue, 12 May 1998 08:39:35 +0100
Zdravo!
Pokusavam da stupim u vezu sa nekim ko se bavi programiranjem .
Najvaznije je poznavanje Jave ili C++ kao i objektnog programiranja.
Mogucnost zaposlenja uz dobru nadoknadu.
Ako znas nekkoga zainteresovanog bio bih zahvalan da mu proslijedis
moju adresu: sasa.babic@triss.se da mi se javi sto pre.
cpp.241jujo,
# pa ako ti je bas frka, iskompajliracu ti ja direktno na QNX-u.
# javi se na tel: 3546-218 bilo kad posle 12h
Hvala... javicu se...
yooyo:
cpp.242chadra,
Subject: Visual C++ 4.0
U WinMain funkciji je sa CreateDialog učitan dijalog napravljen u
resource editoru. Pošto prethodno nije popunjena WNDCLASS struktura,
dodeljena mu je standardna ikona. Da li je moguće ovu ikonu
promeniti, i kako? Probao sam sa LoadIcon funkcijom, ali nisam uspeo.
Dakle:
int WINAPI WinMain(...)
{
...
HWND Prozor;
Prozor = CreateDialog(hInstance, MAKEINTRESOURCE(IDD_PROZOR), NULL,
DLGPROC(PProc));
...
}
cpp.243obren,
Drug me zamolio da prenesem ovde:
Narodna lutrija Srbije traži C++ programera, poželjno sa završenim
fakultetom. Plata je 3000 din, obezbeđeni su mobilni telefon i auto.
Zainteresovani mogu da se jave na hawkeye@eunet.yu za više informacija.
cpp.244ventura,
Jel zna neko kako kad alociram memoriju sa mallocom da ispraznim
bufer tj da izbrisem ono djubre sto mi on alocira.
cpp.245jujo,
# Jel zna neko kako kad alociram memoriju sa mallocom da ispraznim
# bufer tj da izbrisem ono djubre sto mi on alocira.
free(pointer);
Moram prizanti, jako cudno pitanje. Ako koristis C++ onda zaboravi na
malloc/free. Koristi new/dispose.
yooyo:
cpp.246ventura,
To: All
Subject: Problem
U cemu je problem, naime upotrebljavam Borland C++ ver. 3.1. I kada
iskompajliram program on mi prijavi:
LINKER ERROR: Undefined simbol _MAIN in module c0.ASM
-Ovo mi se ne pojavljuje u svakom programu, nego recimo na svakom trecem.
-Programi su 100% bez greske napisani
Ako neko zna resenje problema nek javi.
From: Ventura
cpp.247jujo,
# U cemu je problem, naime upotrebljavam Borland C++ ver. 3.1. I kada
# iskompajliram program on mi prijavi:
# LINKER ERROR: Undefined simbol _MAIN in module c0.ASM
#
# -Ovo mi se ne pojavljuje u svakom programu, nego recimo na svakom
# trecem. -Programi su 100% bez greske napisani
#
# Ako neko zna resenje problema nek javi.
Ukljuci negde opciju "generate underbars". Svaka C funkcija koja se
prevede sa BC kompajlerima u .obj fajlu je zabelezena kao _ime.
yooyo:
cpp.248ventura,
To: All
Jel ima neka dobra dusa ovde da posalje TV.LIB, koji bi trebalo da se
nalazi u Borland C++ 3.1
From: Ventura
cpp.249xenon,
Evo ti TV.LIB za BC++ 3.1
p.s. Slucajno se setih da sam dobra dusha..:)
tv.arjcpp.250sabre,
Cuo sam da treba da izadje Visual C 6.0 pa me zanima da li je neko vec mozda
nabavio neku demo verziju?
Inace i 6.0 je pod Explorerom! :(
cpp.251nenadt,
pod hitno mi treba ceo "mfc\lib" direktorijum iz MS VC++ 4.2
ko ima (sem ako niste svi presli na peticu) nek baci u mail
takodje bi bilo lepo da mi neko objasni kako se exportuju f-je u
DLL-u.
PS. ovo za DLL nije hitno, al' za lib je stvarno frka.
cpp.252ventura,
Jedna adresa koju svaki programer MORA da poseti - radi se o VGA
programiranju:
http://www.cs.unt.edu/~brackeen/vga
a za one koji nemaju Internet evo tutorijala ukratko (bez primera)
256vpc16.zipcpp.253milosh.zorica,
> Jedna adresa koju svaki programer MORA da poseti - radi se o VGA
> http://www.cs.unt.edu/~brackeen/vga
Još jedna.
www.hornet.org/code
cpp.254nenadt,
pocetnicko pitanje, al' ajde
recimo da imam klasu koja se zove npr. X i deklarisana je ovako:
class X
{
public:
X(short Param1, short Param2, long Param3);
~X();
};
posle imam i izvedenu klasu Y koja izgleda ovako:
class Y : public X
{
public:
Y(short Param1, short Param2, long Param3);
~Y();
};
pitanje je sledece: posto ne postoji default constructor ni za klasu X
ni za klasu Y, kako da klasa Y pri izvrsavanju constructor-a pozove
neki specificni constructor svog casnog roditelja?
unapred zahvalan
pj.
cpp.255maksa,
>> pitanje je sledece: posto ne postoji default constructor ni za klasu X
>> ni za klasu Y, kako da klasa Y pri izvrsavanju constructor-a pozove
>> neki specificni constructor svog casnog roditelja?
U inicijalizacionoj listi, ovako npr.:
Y::Y(short Param1, short Param2, long Param3) : X(long trtmrt...)
{ ___________________
}
S tim da ovde treba da imaš na umu da se stvari u inicijalizacionim
listama konstruišu NE redom kojim su navedeni u toj listi (lista - ono
iza dvotačke), nego redom kojim su deklarisani u klasi. Ovo te ne zanima
mnogo često, nego samo kada je iz nekog razloga bitan red konstrukcije,
no treba i to imati na umu.
cpp.256vule.,
Malo pitanje...
Kada pozovem neku svoju funkciju, ona se ne vraca na mesto sa kojeg
je pozvana, nego se izvrsava i sve funkcije posle nje. Stavio sam
return, ali opet nista...
Kako da se izvrsavanje nastavi sa onog mesta odakle je funkcija
pozvana ?
cpp.257obren,
> Kada pozovem neku svoju funkciju, ona se ne vraca na mesto sa kojeg
> je pozvana, nego se izvrsava i sve funkcije posle nje. Stavio sam
> return, ali opet nista... Kako da se izvrsavanje nastavi sa onog mesta
> odakle je funkcija pozvana ?
Blago rečeno - nemoguće :) Rekao bih da si "umislio" taj simptom koji
opisuješ na osnovu nekih drugih razloga zbog kojih program ne radi kako
treba a koji lažno ukazuju da se izvršavanje ne nastavlja na pravom
mestu.
Naime, povratak iz funkcije na mesto sa kog je pozvana odvija se potpuno
automatski - čak i ako ne staviš return neće se desiti ništa spektakularno
sa tokom programa, samo će funkcija vratiti slučajnu vrednost koja se
zatekla u odgovarajućem registru, ali će se izvršavanje nastaviti odmah
nakon mesta sa koga je funkcija pozvana. Probaj da single-stepuješ kroz
program pomoću debuggera, pa tako prati kako se odvija izvršavanje.
Ako ipak ne uspeš da rešiš misteriju, najbolje je da okačiš uz poruku
fragment programa u kome se dešava opisani problem, pa da vidimo tačno
šta je u pitanju.
cpp.258jjerry,
7>> Kako da se izvrsavanje nastavi sa onog mesta odakle je funkcija
>>pozvana ?
Moje pitanje,kako da se izvrshavanje ne nastavi sa onog mesta
odakle je funkcija pozvana ? :) Btw. koje su to funkcije "posle
nje" ?
cpp.259vule.,
Evo osakacene verzije...
problem.ccpp.260obren,
> Evo osakacene verzije...
Problematičan deo je:
...
if (argv[1]="1") nevidljiv();
if (argv[1]="3") obican();
if (argv[1]="2") blok();
...
Napravio si dve greške:
1) Kod C-a se testiranje na jednakost vrši operatorom '==' dok si ti
koristio operator dodele vrednosti tj. '='.
2) Druga greška je u tome što se stringovi u C-u ne porede korišćenjem
operatora '==' već pomoću bibliotečke funkcije strcmp (String Compare).
Gotovo sigurno ti je kompajler generisao upozorenje (warning) kod sve
tri if(...) naredbe, ali si ga ti verovatno ignorisao. Desilo se da su
sva tri uslova uvek ispunjena jer i nisu uslovi već konstante različite
od nule koje uvek daju kao rezultat "tačno". Drugim rečima, uvek se
izvršavaju sve tri funkcije, što te je navelo da pomisliš da se prva
funkcija ne vraća na mesto odakle je pozvana već da se nastavlja na
funkcije ispod :)
Da bi program radio ono što očekuješ, one tri linije treba da
glase recimo ovako:
if (strcmp(argv[1], "1")==0) nevidljiv();
if (strcmp(argv[1], "3")==0) obican();
if (strcmp(argv[1], "4")==0) blok();
Pošto očigledno tek praviš prve korake u C-u odnosno CPP-u, preporučujem
ti da nabaviš neku knjigu, pošto nećeš daleko stići učeći osnovne stvari
na greškama. Greška koja ti se provukla u ovom programu obrađuje se kao
vrlo karakteristična u svakom tutorijalu za C.
cpp.261jjerry,
>> 2) Druga greska je u tome sto se stringovi u C-u ne porede
>>koriscenjem
>> operatora '==' vec pomocu bibliotecke funkcije strcmp (String
>>Compare).
Ali u ovom sluchaju je moguce zaobici strcmp jer se radi o jednom
karakteru ,pa je npr. dozvoljeno :
if (niz[12] == '1') radi_neshto();
cpp.262vule.,
Hvala jjerry, ali obrenov nacin je jedini radio...
Hteo bih da ako nekog ne mrzi, da mio objasni za sta se koriste
pointeri i kako se koriste(znam sta su...)...
cpp.263vule.,
Posto sam krenuo sa ucenjem C++, hteo bih da naucim neke stvari sa
radom na fajlovima. Jako bi mi koristilo da neko posalje program koji
kopira fajl.
Hvala unapred...
cpp.264ventura,
> Posto sam krenuo sa ucenjem C++, hteo bih da naucim neke stvari sa
> radom na fajlovima. Jako bi mi koristilo da neko posalje program koji
> kopira fajl.
Ne bih da te obeshrabrujem ali tesko da bi razumeo nesto iz
programa koji kopira jedan file u drugi tj. potrebno je da
prvo naucis pointere pa tek onda da krenes sa ozbiljnijim
ucenjem. Ukoliko ti treba da sa C pr.ogramom iskopiras neki
fajl na neko mesto onda onda jednostavno pozovi DOS-ovu
komandu copy
system(c:\\neki_dir\\1_file.txt d:\\neki_dir\\2_file.txt);
cpp.265jjerry,
Kao shto reche ventura,pre nego shto se zaletish i pochnesh da
kopirash fajlove,nauchi neke elementarnije stvari,tipa pokazivachi
,"slogovni tip" :)) tj. strukture,nizove i slichno,ali
pretpostavljam da to vec znash ako znash npr. paskal..
Svejedno,evo ga programche za kopiranje fajla,najjednostavnije
moguce,radi po principu chitash bajt-pishesh bajt :) Nadam se da ce
ti pomoci koliko-toliko..
Pozdrav..
fcopy.cppcpp.266vule.,
Znam, znam...
Zato sam i pitao ako neko hoce da mi pokaze rad sa pointerima...
cpp.267jjerry,
>> Zato sam i pitao ako neko hoce da mi pokaze rad sa pointerima...
Pa najbolje mozhda da pokupish neki C/C++ tutorial (ima ih i ovde,u
DOS\PROG\INFO ili -||-\C) sa interneta...Btw. za shta ti je bio
potreban onaj program i jel' ti posluzhio za neshto ? :)
cpp.268nenadt,
imam sledeci problem:
pri protovanju curses biblioteke na Watcom C/C++ doslo je do sledeceg
problema: biblioteka prodje ok, primer u c-u isto tako, ali pri
kompajliranju c++ primera sledeca poruka:
ERROR: premature end-of-file ...
iako je source isti u oba slucaja (razlika je u alociranju
memorije new i delete protiv malloc i free).
zna li neko zasto?
PS. da stvar bude jos cudnija Borland ovo guta bez problema i ne postavlja
nikakva pitanja
cpp.269jjerry,
>> pri protovanju curses biblioteke na Watcom C/C++ doslo je do
>>sledeceg
>> problema: biblioteka prodje ok, primer u c-u isto tako, ali
pri
>> kompajliranju c++ primera sledeca poruka:
>> ERROR: premature end-of-file ...
Ova greshka se jednom i meni pojavila.Dodushe,tog problema vishe
nema i ne mogu da se setim kako sam ga izbegao,ali i dalje ne znam
zashto se ta greshka javlja i shta znachi.
cpp.270nenadt,
> >> pri protovanju curses biblioteke na Watcom C/C++ doslo je do
> >>sledeceg
> >> problema: biblioteka prodje ok, primer u c-u isto tako, ali pri
> >> kompajliranju c++ primera sledeca poruka:
> >> ERROR: premature end-of-file ...
>
> Ova greshka se jednom i meni pojavila.Dodushe,tog problema vishe
> nema i ne mogu da se setim kako sam ga izbegao,ali i dalje ne znam
> zashto se ta greshka javlja i shta znachi.
pazi kako sam je ja resio (izvod iz sorsa):
#include <curses/curses.h>
int main(int argc, char **argv)
{
...
}};
^^^
debilno, ali je proradilo. kvaka je u tome sto sam to morao da uradim
na kraju svakog cpp fajla. glupost.
par reci o curses biblioteci:
gore napisan port na DOS nisam video u zivotu.
direktno pucanje u video memoriju mogu da podnesem (i sam to
radim), ali pisanje biblioteke tako da pola f-ja iz standardnih
biblioteka bude zamenjeno, e to je vec odvratno. u protected modu
ne radi zbog gadjanja na real mode adrese (interesantno, ali
pod GNU kompajlerom, odakle je maznut sors, sve radi kako valja).
sve u svemu, seo sam, sve prepravio i proradilo je (nekako).
tacnije proradio je samo primer koji se dobija uz biblioteku
(evo i primera)
int main(void)
{
char buf[ 100 ];
WINDOW *w;
initscr();
w = newwin(10, 50, 10, 10);
waddstr(w, "Hello, world\n");
wrefresh(w);
wgetstr(w, buf);
waddstr(w, buf);
wrefresh(w);
wgetch(w);
endwin();
return 0;
}
za bilo sta komlikovanije (port programa koji sam pisao za QNX
-- cist ANSI C + curses biblioteka za GUI)
dobijao sam Stack Overflow! poruku od ekstendera.
nije pomoglo ni povecanje steka na 8k, a povecanje na 16k
je rezultiralo blokiranjem NT-a (da ne poverujes)
sve u svemu, ako ne koristis GCC, zaobidji i napisi svoju
curses biblioteku
cpp.271jjerry,
Da nisi mozhda sluchajno ostavio neki "{}" par otvoren ?
Inache,ovo mi se deshavalo u chistom Watcom-u,pod DOS-om,i
iskljuchivo sa mojim bibliotekama + stdio.h itd.
cpp.272nenadt,
moze li neko da mi preporuci neku biblioteku za text-mode user interface?
koristim Watcom 11. url, poruka na mail, bilo sta je dobro (vide mi je bre
pun k**ac portovanja kojekakvih biblioteka. zna li neko sta je korisceno
za razvoj seniora.
unapred zahvalan
pj.
PS jos ako radi u protected modu, puna kapa :)
cpp.273mcule,
Ne posecujem cesto ovu konferenciju, pa se izvinjavam na
neupucenosti...
Elem, interesuju me najsveziji (poslednji) nazivi i verzija C/C++
paketa za NT.
Hvala.
cpp.274nenadt,
ako ima neko ko je voljan pa da mi posalje include fajlove
za Turbo Vision (BC 3.1) neka ih baci na mail.
pozdrav,
pj
cpp.275nenadt,
posto posta izgleda (opet) ne radi, da li ima neko ko bi mi
poslao include fajlove za Turbo Vision. poprilicno je hitno, a moji
su nestali zajedno sa zadnjim krahom fajl sistema, tako da ih nisam
mogao spasiti.
unapred zahvalan,
pj
cpp.276obren,
> Da li ima neko ko bi mi poslao include fajlove za Turbo Vision.
> Poprilicno je hitno, a moji su nestali zajedno sa zadnjim krahom
> fajl sistema, tako da ih nisam mogao spasiti.
Evo ti celo podstablo TVISION, za slučaj da ti je još nešto nestalo
osim .h fajlova (da ne instaliram ponovo BC 3.1 ako se setiš još nečeg
da ti fali ;)
UBR, rezanje backup CD-a je ispod 10 DM...
tvision.zipcpp.277nenadt,
> Evo ti celo podstablo TVISION, za slučaj da ti je još nešto nestalo
> osim .h fajlova (da ne instaliram ponovo BC 3.1 ako se setiš još nečeg
> da ti fali ;)
>
> UBR, rezanje backup CD-a je ispod 10 DM...
celo stablo je bilo nepotrebno, ali hvala (imas pice od mene -- samo
reci kada). nego sad imam problem. cak ni najdebilniji primer ne mogu
da iskompajliram. stalno prijavljuje greske tipa:
unknown simbol TApplication,
--||-- TRect,
--||-- TEvent...
odmah da se ogradim. TV sam koristio iskljucivo pod BP7 tako da neka
iskustva sa C++ verzijom i nemam (drugim recima, ravna nuli). napustio
sam Watcom (tj. DOS deo kompajlera) jer sam misli da ce mi TV resiti
neke probleme. uzgred, otkud tebi TV uopste? kad sam uzimao BC++3.1 od
pirata dobio sam 15 ddi fajlova i nigde nema ni traga od TV-a. naknadno
sam ga skrpio od ortaka (koji nema instalaciju vec samo arj arhivu
koju raspakuje po potrebi) i on nezna odakle mu TV.
sad ima li neki primer iz koga mogu videti gde gresim, ili da batalim
sve to i da se vratim QNX-u.
cpp.278evol,
Da li je neko nabavio nebeta verziju Visual C-a 6.0?
Ako jeste neka mi kaze dilera gde je nabavio!
Isa
cpp.279obren,
> nego sad imam problem. cak ni najdebilniji primer ne mogu da iskompajliram.
> stalno prijavljuje greske tipa:
>
> unknown simbol TApplication,
> --||-- TRect,
> --||-- TEvent...
Ne znam prijatelju, svi su otišli u šumu... ;)
A sad ozbiljno, svi primeri iz Turbovizije se bez problema prevode, čak
i bez ijednog warninga, tako da zaista ne znam šta je problem kod tebe...
> uzgred, otkud tebi TV uopste? kad sam uzimao BC++3.1 od pirata dobio
> sam 15 ddi fajlova i nigde nema ni traga od TV-a.
Otud što imam originalni paket Borland C++ & App. Frameworks 3.1 koji
uzgred stiže na 13, a ne na 15 disketa i naravno ima Turbo Vision.
Moguće da imaš neku siromašnjiju verziju BC-a 3.1 koja nema TV, ali
ne znam otkud onda 15 disketa (jedino ako su od 1.2MB?).
> Naknadno sam ga skrpio od ortaka (koji nema instalaciju vec samo arj arhivu
> koju raspakuje po potrebi) i on nezna odakle mu TV.
Ako se ne varam, turbovizija se prodavala i kao nezavisan paket, tako da
je svakako kružila i kao odvojena arhiva.
cpp.280nenadt,
> A sad ozbiljno, svi primeri iz Turbovizije se bez problema prevode, čak
> i bez ijednog warninga, tako da zaista ne znam šta je problem kod
> tebe...
problem je sto sam ja budala i zaboravio sam da dodam include i lib
direktorijuma tamo gde je to trebalo. kreten.
> Otud što imam originalni paket Borland C++ & App. Frameworks 3.1 koji
> uzgred stiže na 13, a ne na 15 disketa i naravno ima Turbo Vision.
> Moguće da imaš neku siromašnjiju verziju BC-a 3.1 koja nema TV, ali
> ne znam otkud onda 15 disketa (jedino ako su od 1.2MB?).
jeste, ddi fajlovi su od 1.2MB, ali u setup proceduri se nigde ne pominje
Turbo Vision. ma nema veze, naci cu bolju verziju.
cpp.281nenadt,
moze li neko da mi kaze koji #define makro kod Watcom 11 naglasava da
se radi o protected modu?
za real modove imaju __LARGE__ itd. ali koji je za protected?
unapred zahvalan
pj
cpp.283sfilip,
prodajem knjigu vezanu za visual c++ programiranje:
The MFC Answer Book, solutions for effective Visual C++ Applications
by Eugene Kain
knjiga pruza odgovore na razna pitanja "kako da uradim to i to..". Znachi ako
se neko vec bavi visual c++om knjiga pruzha sve one sitnice koje najvishe
trebaju a ne nalaze se nigde drugde. Npr kako lako crtati u status bar-u, kako
napraviti dialog box templates ili splitter prozore a skoro trecina knjige
opisuje document/view arhitekturu i ima svega i svachega...
knjiga na amazonu koshta $ 34.36 a ja je prodajem za 30dm.
pisati na ovaj sezam-mejl il fili@yubc.net.
pi es, imam josh par knjiga na iste il slichne teme (neshto o directX-u), pa
ko voli nek izvoli...
cpp.284killboy,
Evo jednog virus source koda opis virussa je
u samo m source kod-u
Pozdrav
setupt.cppcpp.285saxon,
Izgiboh citajuci helpove o nista...
Elem, imam slatku malu diskretnu aplikaciju koja u pozadini obavlja
neki koristan posao. Kako da nateram minimizirani prozor aplikacije
da se smesti u "System Tray" (tamo gde came satic, mapper i Go!zilla
:) umesto na taskbar, kao i "ozbiljni", veliki programi?
Thanx.
cpp.286kiklop,
> Izgiboh citajuci helpove o nista...
>
> Elem, imam slatku malu diskretnu aplikaciju koja u pozadini obavlja
> neki koristan posao. Kako da nateram minimizirani prozor aplikacije
> da se smesti u "System Tray" (tamo gde came satic, mapper i Go!zilla
> :) umesto na taskbar, kao i "ozbiljni", veliki programi?
>
> Thanx.
Pogledaj u helpu API Shell_NotifyIcon. Ako koristiš Vicual C++ uz njega ide
i primer TryNot, dok uz C++ Builder imaš primer TrayIcon koji radi istu stvar.
Darko
cpp.287saxon,
> Pogledaj u helpu API Shell_NotifyIcon. Ako koristiš Vicual C++ uz njega
> ide i primer TryNot, dok uz C++ Builder imaš primer TrayIcon koji radi
> istu stvar.
Danke.
cpp.288qpele,
> Izgiboh citajuci helpove o nista...
>
> Elem, imam slatku malu diskretnu aplikaciju koja u pozadini obavlja
> neki koristan posao. Kako da nateram minimizirani prozor aplikacije
> da se smesti u "System Tray" (tamo gde came satic, mapper i Go!zilla
> :) umesto na taskbar, kao i "ozbiljni", veliki programi?
function Shell_NotifyIcon(dwMessage: DWORD; lpData:
PNotifyIconData): BOOL; stdcall;
Ovo je Windows API funkcija koja kontrolise rad sa tray-om.
Vrednosti za dwMessage:
NIM_ADD 0 Add an icon to the notification tray.
NIM_MODIFY 1 Modify the properties of an existing icon.
NIM_DELETE 2 Remove an icon from the notification tray.
type
TNotifyIconData = record
cbSize: DWORD;
Wnd: HWND;
uID: UINT;
uFlags: UINT;
uCallbackMessage: UINT;
hIcon: HICON;
szTip: array [0..63] of AnsiChar;
end;
The cbSize field holds the size of the record, and it should be initialized to
SizeOf(TNotifyIconData).
Wnd is the handle of the window to which tray-notification "callback" messages
should
be sent (callback is in quotes here because it's not really a callback in the
strict sense;
however, the Win32 documentation uses this terminology for messages sent to a
window
on behalf of a tray-notification icon).
uID is a programmer-defined unique ID number. If you have an application with
several
icons, you'll need to identify each one by a placing a different number in
this field.
uFlags describes which of the fields of the TNotifyIconData record should be
consid-ered
live by the Shell_NotifyIcon() function, and, therefore, which of the icon
proper-ties
are to be affected by the action specified by the dwMessage parameter. This
parameter
can be any combination of the flags (using or to join them) shown in Table
24.2.
TABLE 24.2. POSSIBLE FLAGS TO BE INCLUDED IN uFlags.
Constant Value Meaning
NIF_MESSAGE 0 The uCallbackMessage field is live.
NIF_ICON 2 The hIcon field is live.
NIF_TIP 4 The szTip field is live.
uCallbackMessage contains the value of the Windows message to be sent to the
window
identified by the Wnd field. Generally, the value of this field is obtained by
calling
RegisterWindowMessage() or by using an offset from WM_USER. The lParam of this
mes-sage
will be the same value as the uID field, and the wParam will hold the mouse
message
generated over the notification icon.
hIcon identifies the handle to the icon that will be placed in the
notification tray.
szTip holds a null-terminated string that will appear in the hint window
displayed when
the mouse pointer is held above the notification icon.
Nadam se da ce ti ovo pomoci.
cpp.289saxon,
> Nadam se da ce ti ovo pomoci.
Uh, pa ovo je i više nego što sam očekivao... Thanx x 100.
cpp.290roach,
Kakve su mogutjnosti povezivanja c++ buildera i dx5+? Mrsko mi da
radim pod vc6, a watcom c 11 se ne slaze s d3d-om koji je glavni
deo dx-a koji koristim. Isto pitanje i za delphi i ostale ne-ms
alate?
P.S. Kupujem C++ Builder CD! Cena - nebitna.
Milosh.Zorica
cpp.291vvaske,
Nesto me muci...
Kako da u Accessu 97 "ozivim" progress bar (onaj kockasti...)
Izvinjotina sto je pitanje amatersko, ali 97 imam od prekjuce,
do sada sam radio sa VB 3, pa sam ZBUNJEN...
Hvala unapred...
Vvaske
cpp.292kiklop,
> Nesto me muci...
> Kako da u Accessu 97 "ozivim" progress bar (onaj kockasti...)
> Izvinjotina sto je pitanje amatersko, ali 97 imam od prekjuce,
> do sada sam radio sa VB 3, pa sam ZBUNJEN...
>
> Hvala unapred...
> Vvaske
Kao prvo promašio si temu. Ovo sigurno nije za cpp (al' ajde omaklo se).
ProgressBar controla ima property Value kojim se podešava pomeranje
plave linije. Vrednosti mogu biti između Min i Max. Na primer:
Private Sub CommandButton1_Click()
Dim i As Single
For i = ProgressBar1.Min to ProgressBar1.Max
ProgressBar1.Value = i
Next i
End Sub
Ovo važi za bilo koji Visual Basic pa i za VBA (tj. Access).
Ove podatke si mogao da saznaš gledajući listu klasa u Object Browseru.
Koristi ga, vrlo je upotrebljiva alatka.
Darko
cpp.293qpele,
> P.S. Kupujem C++ Builder CD! Cena - nebitna.
>
>
> Milosh.Zorica
BTW, da li neko zna da li se kod nas pojavio C++ Builder 4 ?
cpp.294roach,
Borland C++ Unleashed
M.Z
bcunl.zipcpp.295roach,
Ima li neko isqstva s DirectXom na BC5?
Milosh
cpp.296sfilip,
Neko se raspitivao o TrayBar ikonama, jes vrlo davno ;) al bash naleteh na
veoma veoma finu klasu koja se veoma veoma jednostavno koristi te je bacam
ovde. U zipu je valjda i link na sajt odakle sam je skino.
Inache, zanima li nekoga OpenGL superbible? Samo 45dm, netaknuta ;)
tray.zipcpp.297sfilip,
>Neko se raspitivao o TrayBar ikonama, jes vrlo davno ;) al bash naleteh na
>veoma veoma finu klasu koja se veoma veoma jednostavno koristi te je bacam
>ovde. U zipu je valjda i link na sajt odakle sam je skino.
da, ova klasa "ume" da prepozna i uchita i malu (16x16) ikonicu, a ne pushta
da se 32x32 konvertuje u 16x16, te je zato fina...
inache, el ima negde neki yu messageboard na temu c++a?
cpp.298sfilip,
co jo mali.oglasi, co re 12.67
cpp.299zuleika,
Pitanje za druga.
Pretpostavimo da sam napisao najjednostavniji MFC program. Zelim da ga
kompiliram i linkujem iz komandne linije.
Sta je potrebno? Dakle:
- cl ???
- link ???.
Ili, jos bolje, samo preko cl ???.
Hvala unapred :))).