Crearea de plug-in-uri pe delphi pentru comfort de chat, blog delphi-programmer

Crearea de plug-in-uri pe delphi pentru comfort de chat, blog delphi-programmer
Într-o bună zi, dragi cititori ai blogului. În acest articol, aș dori să vorbesc puțin despre modul în care puteți crea plug-in-uri pentru un astfel de chat faimos precum Comfort. Am proiectat plug-in-ul pentru scopurile mele. La serviciu avem serverul acestui chat și am scris un mic plugin pentru canalul nostru, care arată ca un test. Adică, după o anumită perioadă de timp (stabilit în setările plugin) într-un canal (definit) afișează un mesaj (întrebare) anumitor discipline și utilizatori au început să scrie răspunsurile cu răspunsul corect devine puncte, atunci puteți vedea cine este în plumb în testul, și așa mai departe. Puteți descărca întrebări și răspunsuri noi și multe altele.







În general, îmi place să scriu plug-in-uri pentru diverse aplicații. Am considerat deja cumva un articol despre modul în care poți scrie orice plugin pentru o aplicație cum ar fi Download Master. Faptul este că dezvoltatorii Download Master oferă o documentație destul de extinsă despre scrierea pluginurilor în aplicația lor și există multe exemple despre Delphi. să nu mai vorbim de șabloane diferite, dar cu plug-in la comfort există destul de puțină informație, numai generale și exemple în C ++. Da, desigur, prin exemple, vă puteți remodela cu ușurință în exemplul dvs., pe același Delphi. decât în ​​principiu. Am fost interesat doar să analizez acest subiect. De asemenea, interesant este că plug-in-urile pot fi scrise atât pentru partea client, cât și pentru partea server a comfortei.

Când creați pluginuri pentru comfortabil, există câteva nuanțe. Dacă observați, atunci când instalați acest chat, în directorul cu programul nu există dosare cu un nume similar pentru a determina unde să instalați plug-in-urile. De asemenea, extensia pentru fișierul în sine nu are un plugin * .dll. ca de obicei și, în majoritatea cazurilor, este, și altceva, despre care vom vorbi mai târziu. Dar, desigur, aceste plug-in-uri sunt biblioteci dinamice încărcate.

Să ne uităm la unele dintre principiile atunci când creăm pluginuri Delphi pentru Commfort.

  1. Extinderea noastre plug-in-ar trebui să fie «cfcplug», cum ar fi punctul său de vedere al rezultatului ar trebui să fie după cum urmează: mynameplugin.cfcplug sau mynameplugin.dll.cfcplug
  2. Este obligatoriu să utilizați acordul _stdcall. pentru funcțiile pluginului.
  3. Plugin-urile trebuie să fie în folderul Plugins. care ar trebui să se afle la rădăcina directorului în care este instalat Chatul de comuniune. Implicit, acest dosar nu este creat, deci trebuie să îl creați manual (folderul Plugin-uri) și să introduceți plug-in-urile necesare în el, să reporniți Comfort și plug-in-ul trebuie să fie definit fără probleme.






Dacă scrieți funcții asociate cu administrarea serverului, trebuie să setați drepturile corespunzătoare pentru acest cont.

Să trecem la crearea pluginului și revizuirea funcțiilor de bază pentru crearea pluginurilor.

Funcțiile principale care sunt utilizate pentru a crea plugin-uri pentru comfort:

  • PluginInit - această funcție este apelată atunci când este creat un plug-in, aici este cel mai bine să se aloce alocarea de memorie pentru obiecte, variabile, dacă acest lucru este necesar.
  • PluginTerminate - această funcție este apelată atunci când plug-in-ul este oprit, în consecință, este necesar să eliberați memoria, dacă ați selectat-o ​​când inițializați-o.
  • PluginProcces - această funcție este apelată atunci când apar diverse evenimente: trimiterea de mesaje, primirea mesajelor, părăsirea canalului și multe altele.
  • PluginShowOptions - această funcție este apelată când faceți clic pe butonul "Opțiuni plugin" din setările de confidențialitate.
  • PluginShowAbout - această funcție se numește când este apăsat butonul "About plug-in"
  • CommFortGetData - această funcție este concepută pentru a obține informații din program: versiune, mesaje, canalul care este activ în prezent și așa mai departe.
  • CommFortProcess - această funcție are ca scop inițializarea anumitor evenimente: trimiterea unui mesaj, de exemplu.

Ei bine, asta e, am sortat funcțiile de bază, acum să creăm cel mai simplu plug-in, iar în următoarea parte a acestui articol, vom examina un plug-in mai serios.

Să deschidem IDE Delphi (I Delphi7) și executați comanda File-New-Altele ... și în fereastra care apare, alegeți fila New DLL Wizard, apoi faceți clic pe OK. După utilizări, să prescrieți: - aceasta este pentru ca biblioteca noastră (plug-in) să se compileze imediat cu extensia de care avem nevoie. Deși nu este necesar să se facă acest lucru, extensia poate fi modificată oricând. Să sunăm la bibliotecă și să o salvăm, de exemplu MyPlugin.

Acum, să creăm Unitatea și să îi dăm un nume, de exemplu Constant. acolo vom lista toate constantele noastre plug-in. În acesta conectăm modulul Windows și trebuie să declarem structura (înregistrare). Această intrare va conține informații despre pluginul nostru. Cu toții facem acest lucru în acest modul Constant.pas. Această intrare arată astfel:

  • TCommFortProcess = funcție (dwPluginID DWORD ;. DwMessageID DWORD ;. BMessage PCHAR ;. DwMessageLength DWORD.). BYTE; stdcall;
  • TCommFortGetData = funcție (dwDataID.DWORD; bBuffer.PCHAR; dwBufferSize.DWORD): DWORD; stdcall;

Apoi facem exportul funcțiilor noastre de export PluginInit. PluginProcess; și în ultimul moment, să declare constante:

Totul este clar, cred, declaram numele plug-in-ului, descrierea acestuia si, desigur, versiunea clientului sau serverul de chat pentru care se face plug-in-ul nostru. Totul, cu acest modul ar fi sortat și la acesta, cel mai probabil nu ne vom mai întoarce, așa că îl salvăm și îl închidem. Acum creați un alt modul (Unitate), în care vom implementa direct funcția noastră plug-in. Am salvat acest modul sub numele Main.pas.

În acest modul în utilizări am următoarele module:

După cum puteți vedea, există modulul nostru constant Constant. Mai mult, în acest modul, declarăm funcțiile pentru a inițializa plugin-ul (PluginInit) și o funcție care apare atunci când anumite evenimente care au loc în chat (trimite mesaje, acces la canalul lor, primirea de mesaje și așa mai departe) - a PluginProcces funcției. La mine arată după cum urmează:







Trimiteți-le prietenilor: