// Ympyra2.cpp // Kirjoittanut Samu Kohtala C++ Builder kolmosella vuonna 1998 // LuK-tutkielman C++ Builderin ja Delphin yhteiskäyttö esimerkkilistaus // käännetään DLL-tiedostoksi, tarkoitettu käytettäväksi liittymällä // virtuaaliseen metoditauluun esim. Delphi-sovelluksesta käsin #include #pragma hdrstop // cYmpyra nimisen esimerkkiluokan määrittely, huomaa stdcall-kutsutapa ja metodien // julistaminen virtuaalisiksi! class cYmpyra { private: int x,y; double r; public: cYmpyra() { AsetaXY(100,100); AsetaSade(10); } virtual void _stdcall DeleteYmpyra() { ::delete this; } virtual void _stdcall AsetaXY(int ix,int iy) { x = ix; y = iy; } virtual _stdcall AsetaSade(double ir) { r = ir; } virtual _stdcall int AnnaX() { return x; } virtual _stdcall int AnnaY() { return y; } virtual _stdcall int AnnaSade() { return r; } virtual _stdcall double LaskeAla() { return (2 * 3.1415 * r*r ); } }; // Metodi jolla annetaan luokan esiintymän kahva kutsuvalle ohjelmalle. extern "C" cYmpyra* _stdcall _export GetCYmpyra() { return new cYmpyra; } //--------------------------------------------------------------------------- int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) { return 1; } //---------------------------------------------------------------------------