Posted By: medvidek (Zase za polarnim kruhem) on 'CZprogram'
Title: Re: export vector do dll
Date: Wed Feb 12 12:38:42 2003
> cau lidi...
> mel bych problem.
> potrebuju vytvorit dll rozhrani k tride, ktera obsahuje tridu odvozenou od
> sablony vector.
Nejsem si uplne jisty, na co se ptas, tak rozeberu moznosti.
Pokud chces dll rozhrani ke tride (a je uplne jedno, co obsahuje), tak proste
vyexportujes public metody nebo pripadne celou tridu. Konkretni syntax si
nepamatuju, protoze takove skarede veci nedelam :) Ma to tu nevyhodu, ze
vyexportovana jmena zavisi na prekladaci a takove dll nemuzes jednoduse
pouzit v programu vytvorenem jinym prekladacem. A ma to 150 dalsich problemu,
takze pokud to neni velice specificka zalezitost, tak tudy cesta nevede.
Resenim je pouzit "C++ interfaces", tudiz struktury obsahujici jen ciste
virtualni metody. Tvoje trida od nich podedi a okolni svet pracuje jen s tim
interfacem. Protoze se virtualni metody volaji pomoci ofsetu ve VTM,
odpoadnou problemy s jmenama. Je to vlastne zaklad komponentoveho
programovani. Pokud Te to zajima, dodam link na skvely clanek, ktery to
vsechno vysvetluje.
Jinak treba Pivson je taky skvely zdroj ;)
> da se rict, ze spis potrebuju vedet, jak vytvorit dll rozhrani ke tride
> odvozene od vector.
> diky
Pokud ji odvozujes od instanciovane sablony vector, tj. napr.
class moje: public vector<int>
tak se jedna o tridu jako kazdou jinou a plati vse receno vyse.
Pokud ji odvozujes od neinstanciovane sablony, tj.
teplate <class T> class moje: public vector<T>
tak vytvaris sablonu a ta se nijak exportovat neda, tu proste z siris
ve zdrojove forme.
medvidek
--
Don't eat that yellow snow!