Si il y a des erreur dans la programmation que ca soit dans le "standard" de la syntaxe ou des mauvaise utilisation ou autre n'hesiter pas a m'en faire par en commentaire ici.
Documentation supplémentaire :
http://www.xchat.org/docs/plugin20.html
Utilisation :
* Installer VS.Net (avec au moins la prise en charge C++.net et pourquoi pas C#, VB.net)
* Installer Xchat
* Créer un projet .net avec "PluginInterface" dans les Références (mais pas besoin de "XChatInterop") cela est volontaire
* Créer une classe qui herite de "MarshalByRefObject" et qui implémente "PluginInterface.IManagedPlugin"
* Implementer toutes les methode requise bien entendu
* Implémenter "PluginInterface.IOptions" (Facultatif) : cela permet d'activé le bouton "Options" de la fenêtre de config
* Pour le debug il faut aller dans les options du projet et indiquer Xchat.exe en tant que programme a lancer, pas besoin d'argument supplementaire
en toute logique cela va simplement lancer Xchat rien de plus
* les point d'arret que vous aurez mis seront marquer comme ne pouvant etre déclenché cela est parfaitement normal il vous suffira d'aller dans le menu "Fenetre > Greffons et scripts" puis charger "XChatInterop.dll"
* Tapper "/DotNetManager" une fois le chargement fini et enfin charger votre dll .net
ATTENTION il ne faut pas oublier :
* Que les dll soient absolument toutes dans le même repertoire pour des question de typage entre assembly (ou alros les enregistrer dans le GAC et changer legerement le code)
* et ne pas oublier d'overrider :
//C# :
//Durée de vie du service infini
public override object InitializeLifetimeService()
{
return null;
}
//C++.Net :
virtual Object^ InitializeLifetimeService() override
{
return nullptr;
}
La valeur "null" specifie que la durée du service est infini, pour plus de detail se reporter dans la doc MSDN a la fonction : "InitializeLifetimeService" de la classe "MarshalByRefObject"