Létrehozása egy plug-in a chat delphi commfort, blog Delphi-programozó

Általában szeretek írni plug-inek a különböző alkalmazásokhoz. Én valahogy tekinthető egy cikket arról, hogyan kell írni egy plugin ilyen alkalmazás a Download Master. Az a tény, hogy a fejlesztők a Download Master biztosít meglehetősen kiterjedt dokumentációt írásban plugins, azok alkalmazása és példák sok van Delphi. nem beszélve a különböző sablonok, de a plug-in Commfort viszonylag kevés információt, csak az általános és a példák C ++. Igen, természetesen a példák könnyen átalakítható egy mintát, ugyanazon a Delphi. amit alapvetően nem. Én csak érdekel, hogy ez a téma. ott is érdekes, hogy írhat plug-inek, mind a kliens oldali és szerver oldali Commfort.
Amikor létrehoz plug-inek Commfort vannak árnyalatok. Ha azt veszi észre, amikor telepíti a chat a könyvtárat a programban senki mappát, amelynek neve szeretnék meghatározni, ahol a telepíteni kívánt plug-inek. A bővítés a plug-in nem * .dll fájlt. mint máskor, és a legtöbb esetben ez, és egy kicsit több, ami megbeszéljük később. De természetesen az adatok pluginek dinamikus csatolású könyvtárak.
Nézzünk néhány elveket, hogy hozzon létre plug-inek Delphi Commfort.
- A bővítés a plug-in kell «cfcplug», így szerinte az eredmény a következő legyen: mynameplugin.cfcplug vagy mynameplugin.dll.cfcplug
- Nem kötelező használni _stdcall megállapodást. A plug-in funkciókat.
- Dugó kell a Plugins mappába. ami kell a gyökere a mappát, ahol a chat Commfort telepítve. Alapértelmezésben ez a mappa nem jön létre, ezért kézzel kell létrehozni (Plugins mappa), és betette a szükséges bővítményeket, és indítsa újra Commfort bővítményt kell döntenie, minden gond nélkül.
Ha írsz a funkciók, amelyek kapcsolódnak az adminisztráció a szerver, be kell állítani a megfelelő engedélyeket ehhez a fiókhoz.
Nos, kezdjük, hogy megteremtse a legtöbb bővítmény és megvizsgálja a alapfunkciók létrehozására plug-inek.
A főbb funkciók, amelyek létrehozásához használt plug-inek Commfort:
- PluginInit - ez a funkció kerül meghívásra, ha a plugin, hogy a legjobb memória kiosztás tárgyak, változók, kivéve, ha szükség van rá.
- PluginTerminate - ez a funkció kerül meghívásra, amikor megállás dugó, meg kell szabadítani a memória, illetve, ha az inicializálás során annak elszigetelt.
- PluginProcces - ez a funkció az úgynevezett különböző események: üzenetküldés, üzenetek fogadása, a termelés a csatorna, és még sokan mások.
- PluginShowOptions - ez a funkció kerül meghívásra, ha megnyomja a gombot a „Beállítások bővítmény” a Commfort beállításokat.
- PluginShowAbout - ez a funkció kerül meghívásra, ha a gomb megnyomása után a „Mintegy bővítmény”
- CommFortGetData - ez a funkció célja, hogy adjon tájékoztatást a program: a változat az üzenet, amelyet csatorna jelenleg aktív, és így tovább.
- CommFortProcess - ez a funkció célja, hogy kezdeményezi néhány esemény: küld egy üzenetet, például.
Nos, ez minden, mint az alapvető funkciókat, úgy gondoltuk, hozzunk létre egy nagyon egyszerű modul, és a következő része a cikket, akkor nézd komolyabban plugin.
Nyissuk ki az IDE Delphi (I Delphi7) és végrehajtja a parancsot a Fájl-Új-Egyéb ... és a megjelenő ablakban válasszuk ki a fül új DLL elindításához, majd kattintson az OK gombra. Miután felhasználási hagyja előírják: - ez a mi könyvtár (plug-in) összeállított közvetlenül a kívánt mellék. Bár nem kell tennie, a kiterjesztés lehet változtatni bármikor. Nevezzük a könyvtár és mentse el, például MyPlugin.
Most hozzunk létre egy egység, és megkérdezni a nevét, mint a Constant. ahol felsoroljuk az összes mi plug-in állandók. Ez fog csatlakozni Windows egységet, és szükségünk van arra, hogy egy szerkezet (rekord). Ez a rekord információt tartalmaz a beépülő modul. Ez az, amit mi mindannyian ebben Constant.pas modult. Ezt a bejegyzést úgy néz rám, az alábbiak szerint:
- TCommFortProcess = függvény (dwPluginID duplaszó ;. DwMessageID DWORD ;. BMessage PCHAR ;. DwMessageLength DWORD.). BYTE; stdcall;
- TCommFortGetData = függvény (dwDataID dword; bBuffer PCHAR; dwBufferSize DWORD ...): DWORD; stdcall;
Akkor ne exportáljuk funkciók exportál PluginInit. PluginProcess; és az utolsó pillanatban kijelentjük állandók:
Minden világos, azt hiszem, hogy be a nevét a beépülő modul leírását, valamint természetesen a változata az ügyfél vagy csevegõszerver tette a beépülő modul. Mindez modult ki kell válogatni, és ez valószínűleg vissza kell térnie nem ezért, mentse és zárja le. Most hozzon létre egy másik egység (Unit), ahol azonnal fogjuk végrehajtani a beépülő modul működését. Megtartottam ezt a modult néven Main.pas.
Ebben a modulban a felhasználási csatoltam a következő modulokat tartalmazza:
Mint látható, itt van a mi állandó egység - Constant. Továbbá, ebben a modulban állapítsa meg a funkciókat inicializálni a plugin (PluginInit) és egy függvény, amely akkor jelentkezik, amikor bizonyos események fordulnak elő a chat (üzeneteket küldeni, hozzáférhetnek csatorna üzenetek fogadására, és így tovább) - ez a funkció PluginProcces. Azt a következő: