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

Létrehozása egy plug-in a chat delphi commfort, blog Delphi-programozó
Jó napot, kedves blog olvasók. Ebben a cikkben szeretnék beszélni egy kicsit arról, hogyan lehet létrehozni plug-inek, mint a jól ismert csevegés Commfort. A bővítmény fejlesztettem azt a saját céljaira. A munka, amit a kiszolgáló telepítése a chat, és írtam egy kis plugin a csatorna, amely a forma egy kvíz. Azaz, egy bizonyos idő után (meg a bővítmény beállítások) egy csatorna (meghatározott) üzenetet jelenít meg (kérdés) bizonyos témák és a felhasználók kezdik írni a választ a helyes válasz pontot kap, akkor láthatjuk, aki a vezetést a kvízt, és így tovább. Meg lehet letölteni az új kérdéseket és válaszokat, és így tovább.

Á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.

  1. 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
  2. Nem kötelező használni _stdcall megállapodást. A plug-in funkciókat.
  3. 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ő: