// ympyra.cpp // Kirjoittanut Samu Kohtala C++ Builder kolmosella vuonna 1998 // LuK-tutkielman C++ Builderin ja Delphin yhteiskäyttö esimerkkilistaus // kääntyy DLL-tiedostoksi #include #pragma hdrstop // cYmpyra luokka, esimerkki luokasta DLL-tiedostossa class cYmpyra { private: int x,y; double r; public: cYmpyra() { AsetaXY(100,100); AsetaSade(10); } void AsetaXY(int ix,int iy) { x = ix; y = iy; } AsetaSade(double ir) { r = ir; } int AnnaX() { return x; } int AnnaY() { return y; } int AnnaSade() { return r; } double LaskeAla() { return (2 * 3.1415 * r*r ); } }; extern "C" { // Palauttaa kahvan cYmpyra-luokan esiintymään HANDLE _stdcall _export LoadCircle() { cYmpyra* Ympyra = new cYmpyra(); return (HANDLE)Ympyra; } // Vapauttaa cYmpyra-luokan esiintymän void _stdcall _export FreeCircle(cYmpyra* Ympyra) { delete Ympyra; } int _stdcall _export GetX( cYmpyra* Ympyra ) { return Ympyra->AnnaX(); } double _stdcall _export GetA( cYmpyra* Ympyra ) { return Ympyra->LaskeAla(); } void _stdcall _export SetR( cYmpyra* Ympyra, double ir ) { Ympyra->AsetaSade(ir); } } //--------------------------------------------------------------------------- int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) { return 1; } //---------------------------------------------------------------------------