Uhh... ne mogu da napravim template klasu u ATLU :(
10.12.2004. u 14:15 · pre 266 meseci
#1
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:
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:
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.
Code:
template <class GridColumn>
class GridColumns :
public IDispatchImpl<IGridColumns, &IID_IGridColumns, &LIBID_DATAGRIDLib>,
public ISupportErrorInfo,
public CComObjectRoot,
public CComCoClass<GridColumns,&CLSID_GridColumns>
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
#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.
Re: Uhh... ne mogu da napravim template klasu u ATLU :(