Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Uhh... ne mogu da napravim template klasu u ATLU :(

[es] :: C/C++ programiranje :: Uhh... ne mogu da napravim template klasu u ATLU :(

[ Pregleda: 3385 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

TheAlas
Bojan Sala
Senior Software Eng
IGT
Beograd

Član broj: 36584
Poruke: 119
*.nat-pool.bgd.sbb.co.yu.



+1 Profil

icon Uhh... ne mogu da napravim template klasu u ATLU :(10.12.2004. u 14:15 - pre 235 meseci
Evo, lepo ja napravim klasu preko "Insert Class" komande, i generise se jedno 1000 linija koda u jos toliko fajlova (koji cak nisu na File listi, sakriveni su ), ali dobro, ovako izgleda to:

Code:

template <class GridColumn>
class GridColumns : 
    public IDispatchImpl<IGridColumns, &IID_IGridColumns, &LIBID_DATAGRIDLib>, 
    public ISupportErrorInfo,
    public CComObjectRoot,
    public CComCoClass<GridColumns,&CLSID_GridColumns>


Ovo "template" sam ja dodao, i lupim compile, kada ono klasa se deklarise na jos 300 mesta (MIDL kompiler recimo generise te deklaracije).
Znaci prosto, samo zelim da napravim kolekciju kolona (GridColumns), ali otvorim svoj header (koji je potupuno generisan od strane nekih wizarda i sl. bica iz sveta fantazije), i vidim:

Code:

#ifdef __cplusplus

class DECLSPEC_UUID("5142FC29-8C14-4D42-BB83-ACE727D22BB0")
GridColumn;
#endif

EXTERN_C const CLSID CLSID_GridColumns;

#ifdef __cplusplus

template <class GridColumn> class DECLSPEC_UUID("FD1B20FC-FCDF-48DC-AE56-5BEB80F49E05")
GridColumns;
#endif


E sada, dodam i ovde template :P, ali naravno javi ovo:

error C2894: templates cannot be declared to have 'C' linkage

Pa ako neko ima iskustva sa template klasama i atl-om, nek pomogne ako moze .

Sta se desi ako zelim da promenim ime svoje klase??? Moze li ISTA bez tih wizarda i generatora da se napravi u atl-u?

Postoji li neka knjiga za atl? A da moze da se kupi u okolini BGa.
 
Odgovor na temu

_Super_Ellite_Bug_
Novi Sad, konacno!!!

Član broj: 41318
Poruke: 145
*.nat-pool.nsad.sbb.co.yu.

Sajt: www.searchlores.org


Profil

icon Re: Uhh... ne mogu da napravim template klasu u ATLU :(10.12.2004. u 15:25 - pre 235 meseci
Citat:

error C2894: templates cannot be declared to have 'C' linkage


Dakle,evo ti links do edicije poznatog izdavaca: "Tu ti sve pise" :o)

http://search.microsoft.com/se...st=b&c=0&s=1&swc=0

http://search.microsoft.com/se...st=b&c=0&s=1&swc=0
ISO/IEC JTC1/SC22/WG14-ISO/IEC 9899:1999
 
Odgovor na temu

TheAlas
Bojan Sala
Senior Software Eng
IGT
Beograd

Član broj: 36584
Poruke: 119
*.nat-pool.bgd.sbb.co.yu.



+1 Profil

icon Re: Uhh... ne mogu da napravim template klasu u ATLU :(10.12.2004. u 21:04 - pre 235 meseci
Ma znam to . Nisam znao da novi msdn ima jos i primere za (manje vise) svaku gresku. Problem je u tome sto mi taj MIDL kompiler ubacuje extern "C" kako mu padne, ne mogu da menjam generisane fajlove, samo jos vise gluposti moze da nastane tako (mada cu sada probati da operisem taj kod malo).
Za sve su krivi ti wizardi bez kojih vise ne mozes ni da napravis posten program .
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.3.133.130.ptr.us.xo.net.



+1001 Profil

icon Re: Uhh... ne mogu da napravim template klasu u ATLU :(10.12.2004. u 21:58 - pre 235 meseci
Sa Wizzardima se moze mnogo toga uraditi, samo ne moze na brzinu - moras prvo
da malo iscitas knjiga, da bi znao tacno sta se moze i sta radis.

Mikrosoftovi linkovi su poslednja opcija, cisto da se njusne okolo da se vidi cega sve
ima.

Imas li dobar razlog zasto bas hoces da napravis kontrolu u ATL-u ?
 
Odgovor na temu

TheAlas
Bojan Sala
Senior Software Eng
IGT
Beograd

Član broj: 36584
Poruke: 119
*.nat-pool.bgd.sbb.co.yu.



+1 Profil

icon Re: Uhh... ne mogu da napravim template klasu u ATLU :(11.12.2004. u 12:09 - pre 235 meseci
Ma videcu da nadjem neku knjigu, ali nema nista na nasem jeziku. Moj msdn je iz 98' pa jedino korisno sto imam je "Inside OLE By Kraig Brockschmidt" .

Koristim atl jer zelim da naucim kako se koristi :P, a i data-aware kontrola se moze napraviti samo u atlu, ako zelim da je koristim u vb-u recimo (ja mislim, mozda postoji i nesto drugo).
Nikada nisam voleo MFC recimo, a ATL funkcionise na slican nacin, programe uvek pravim bez ikakvih "pomocnika", afx-a, mfc-a i sl., pocnem od nicega. U atlu nemam izbora, mnogo je bre z**eban, ja trebam da naucim da koristim nesto sto je 5 000 ljudi pravilo godinama :P.
Sto se tice templatea, evo sada se vracam na to (malo vremena imam za ovo zbog faxa ), vec sam izgubio trag svojoj famoznoj klasi, samo za pravljenje obicne klase moram da pisem stotine linija koda (bez wizarda, odnosno generatora).
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.client.comcast.net.



+1001 Profil

icon Re: Uhh... ne mogu da napravim template klasu u ATLU :(11.12.2004. u 20:02 - pre 235 meseci
Citat:
TheAlas: Ma videcu da nadjem neku knjigu, ali nema nista na nasem jeziku. Moj msdn je iz 98' pa jedino korisno sto imam je "Inside OLE By Kraig Brockschmidt" ;).


MSDN ti je stvarno star, knjiga ti uopste nije losa.

Citat:
Koristim atl jer zelim da naucim kako se koristi :P


Validan razlog, nema sta.

Citat:
, a i data-aware kontrola se moze napraviti samo u atlu


Za ovo nisam siguran - ne znam mnogo o podrsci za databaze, ali mi izgleda nelogicno.

Citat:
Nikada nisam voleo MFC


Nisi usamljen u ovom misljenju, ali sa stanovista programera usmerenog na krajnji
komercijalni proizvod obimnih zahteva, ne znam stvarno sta u sadasnjem trenutku
imas bolje (da ne racunamo .NET) za Windows-e.

Za desetak godina sam naisao na samo jednu jedinu firmu koja striktno trazi WinAPI i
ne zeli da cuje za MFC. Razlog - prave neke plug-in-ove za browsere koji prenose
motion video, i treba im nesto vrlo malog code footprint-a i vrlo brzo.

Sve drugo pici samo MFC, tu i tamo se moze naici na Borland, ali retko. Podrska na
web-u je vise nego izvrsna (codeproject.com i gomila slicnih).

Citat:
programe uvek pravim bez ikakvih "pomocnika", afx-a, mfc-a i sl., pocnem od nicega.


Jedan od validnih izbora...

Citat:
U atlu nemam izbora, mnogo je bre z**eban, ja trebam da naucim da koristim nesto sto je 5 000 ljudi pravilo godinama :P.


Pokusacu da ti nadjem online knjigu, ali opet, treba vremena za ucenje.

ATL se inace koristi kad kontrola treba da radi kako na 'fat-client' aplikaciji tako i na
web browser-u. Ako ti treba samo za aplikacije, pokusaj da napravis MFC ActiveX
kontrolu u koju unutra (verovatno) mozes da smestis svoju klasu deriviranu od CRecordSet-a, a kontrola bi joj samo obezbedila interfejs i graficku prezentaciju.
 
Odgovor na temu

TheAlas
Bojan Sala
Senior Software Eng
IGT
Beograd

Član broj: 36584
Poruke: 119
*.nat-pool.bgd.sbb.co.yu.



+1 Profil

icon Re: Uhh... ne mogu da napravim template klasu u ATLU :(12.12.2004. u 15:31 - pre 235 meseci
Bilo bi strava ako moze da se nadje neka online knjiga, nasao sam dosta dobre stvari na amazon.com-u, ali ne za manje od $50 .
Od Inside OLE sam procitao dobar deo, ali jos pre 4 god. .

MFC nije neophodan nikako, sam Microsoft ga ne koristi u svojim "vaznijim" programima. Ljudi ga najcesce koriste iz ovih razloga:
1. Ne znaju drugo
2. Legendarni Document/View interfejs
3. Toolbar, Splitter, Menu i ostale klase koje daju mnostvo mogucnosti koje win32 kontrole nemaju po defaultu
4. Ostale nepotrebne klase, CString, CEdit, CListView, C[cega god se setis], itd.
5. Baze podataka, itd.
Meni ne treba nista od ovog, sve moze i bez mfca a ako nabavis/napravis neke svoje klase, mozes da imas svoju verziju tog doc/view-a.
Ali dobro, kad vec imam mfc, sto da ga ne koristim, radim i neke programe sa tim klasama kada ne mogu da ih zamenim.

Meni treba kontrola samo samo za aplikacije. MFC opet nije resenje jer ne moze da se koristi u vbu, ali stvarno bi bilo dobro da moze, mfc ActiveX kontrola je odlicna stvar, ali ne saradjuje sa okruzenjem (ambijentom, kontenjerom ili kako se to vec zove ).
 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.client.comcast.net.



+1001 Profil

icon Re: Uhh... ne mogu da napravim template klasu u ATLU :(12.12.2004. u 22:08 - pre 235 meseci
Citat:
MFC nije neophodan nikako, sam Microsoft ga ne koristi u svojim "vaznijim" programima. Ljudi ga najcesce koriste iz ovih razloga:
1. Ne znaju drugo


Ako mislis da u Silicijumskoj Dolini po firmama sede neobavesteni ljudi, ljuto se varas.
MFC je pretezak za web, to je cinjenica, ali za 'fat client' aplikacije je industrijski
standard. Gomila strateskog softvera je napisana u MFC-u. Alatke za programiranje
FPGA cipova (Xilinx i Altera) koje su krajem devesetih izmenile lice tehnologije su
odreda pisane u MFC-u.

Citat:
2. Legendarni Document/View interfejs


Jeste legendaran, jer ako pogledas sta sve dobijes za gotovo, stvarno su ga pisali
suvi geniji.

Citat:
3. Toolbar, Splitter, Menu i ostale klase koje daju mnostvo mogucnosti koje win32 kontrole nemaju po defaultu
4. Ostale nepotrebne klase, CString, CEdit, CListView, C[cega god se setis], itd.
5. Baze podataka, itd.
Meni ne treba nista od ovog, sve moze i bez mfca a ako nabavis/napravis neke svoje klase, mozes da imas svoju verziju tog doc/view-a.


Neke stvari su zaista proste - CString moze da napise svaki pocetnik u C++-u, cak
se to radi kao obavezan primer u ilustrovanju object-orjentisanog principa.

Sve se svodi na sledece: ako imas vremena na pretek, nigde ne zuris, ne ceka te
trziste, ne lupkaju nervozni venture kapitalisti prstima o sto, ili nemas neku svoju
drugu strucnu disciplinu za koju hoces da odvojis gro vremena, slobodno izmisljaj
svoje klase. Sve su sanse da ces kojih desetak godina posle Mikrosofta napraviti
noviju i bolju stvar. Posle toga sacekas jos pet godina dok i ostali prihvate tvoj
standard tako da mozes da nadjes dobre inzenjere sirom sveta koji to znaju da
koriste, i problem je resen.

Da vreme ne trci, mnostvo stvari bi bilo prostije.

Za ljude kojima je glavni fokus u necem drugom (meni je to recimo audio/video/DSP/
DVD) MFC dodje kao idealna alatka jer pruza mnogo, i sve je na dohvat ruke. Niko
ne pominje gotovo savrseno uradjen online help (MSDN), gde za gotovo sve mozes
da nadjes dobar putokaz.

Istini za volju, iako imam interesovanje za ostale razvojne alatke, jos nisam video
nista sto pruza korisniku mogucnosti da u svojim aplikacijama ima 99% features
koje se srecu u najeminentnijim aplikacijama.

Mislim da je situacija zrela da otvorimo temu u kojoj bi poznavaoci 'rasklopili u delove'
svoje omiljene alatke i pokazale sta zaista tu ima. Cini mi se kad bi smo lepo
prebrojali sta se sve sa cime dobija, stvari bi postale jasnije, a ko dizajnira novo imao
bi pregledniju situaciju u smislu sta sve treba da postigne/dostigne.

Citat:
Meni treba kontrola samo samo za aplikacije. MFC opet nije resenje jer ne moze da se koristi u vbu, ali stvarno bi bilo dobro da moze, mfc ActiveX kontrola je odlicna stvar, ali ne saradjuje sa okruzenjem (ambijentom, kontenjerom ili kako se to vec zove :) ).


Ovde te bas nisam razumeo, ne znam odakle ti ta prica - licno sam napravio bar jedno
desetak MFC ActiveX kontrola koje rade bas za fat client okruzenje. Probali su ih i
moji kolege u VB-u 6-ici, i radile su bez problema. ATL-u svaka cast na malom code
footprintu i (mozda) na brzini, ali nemas ugradjenu exceptions zastitu protiv bilo cega,
sto je uglavnom i razlog sto se daleko manje koristi u svetu profesionalnih aplikacija.

Da se vratimo na problem - mozda je pravo resenje za to sto hoces da tvoja ActiveX
kontrola pruzi samo interfejs za tvoju unutrasnju klasu koja bi bila public CRecordSet
ili sta ti vec treba i radila ispod haube sve sto treba da radi. Drugim recima, nije
potrebno da sama kontrola bude public CRecordSet.

 
Odgovor na temu

TheAlas
Bojan Sala
Senior Software Eng
IGT
Beograd

Član broj: 36584
Poruke: 119
*.nat-pool.bgd.sbb.co.yu.



+1 Profil

icon Re: Uhh... ne mogu da napravim template klasu u ATLU :(13.12.2004. u 10:43 - pre 235 meseci
Naravno, 99% win softvera ga koristi, ali veliki i dobro napravljeni programi ga ne koriste, Adobe, Macromedia (za ovo mislim, nisam siguran), MS Office, itd.. A ako hoces da prebacis isti program u Linux/Mac (kao dosta Adobe-ovih programa), onda nemas izbora .
A tvoje klase ne moraju da budu bolje nikako, ne pravis ti klase za stotine hiljada korisnika vec samo u privatnom opsegu, u samom msdnu pise zasto Office ne koristi mfc.
Za nas smrtnike koji nemamo kompaniju od 1000 zaposlenih, mfc je standard. Napraviti jedan Wordpad bez mfca je uzasno tesko, ali program poput Painta/Notepada je lako (meni cak lakse) uraditi i bez klasa. Biras adekvatne alate/okruzenje u zavisnosti od toga sta ti treba naravno.

Citat:

licno sam napravio bar jedno
desetak MFC ActiveX kontrola koje rade bas za fat client okruzenje


I ja, ali imam dosta problema sa tim klasama koje dobijam iz CRecordset-a (ne mogu da prosledim ADO 2.5 klasu iz vba recimo: "MyDataControl.MyRecordset = MyADO25VBRecordset", doduse postoje i alternativni nacini), uostalom bas zelim da naucim i taj atl . Procitacu neku knjigu verovatno, nekako cu ga vec svariti, a za sada ce da odlicno da posluzi i vb6 activex kontrola .

 
Odgovor na temu

milanche
San Francisco

Član broj: 2447
Poruke: 1200
*.client.comcast.net.



+1001 Profil

icon Re: Uhh... ne mogu da napravim template klasu u ATLU :(13.12.2004. u 16:11 - pre 235 meseci
Moju dobru volju da ti pomognem strasno kolje to sto nemam bas nikakav database
background - nemam jasnu predstavu o tome sta tacno tu treba da radi i kako.

Ili da se umesa u pricu neko treci, ili da se dopisujemo privatno, pa da se nadjemo na
nekoj tacki odakle mogu da ti budem od pomoci.
 
Odgovor na temu

[es] :: C/C++ programiranje :: Uhh... ne mogu da napravim template klasu u ATLU :(

[ Pregleda: 3385 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.