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!

Search the boards