Pardonnez-moi si ma terminologie est un peu éteinte. Ma connaissance de C++/CLI est très limitée.Utilisation de méthodes d'extension C# à partir de C++/CLI gérés
J'ai une application MFC qui utilise une DLL avec l'option/clr activée. Cette DLL utilise un couple de DLL C# pour communiquer avec un serveur en utilisant WCF. Pour la plupart cela fonctionne bien.
Dans l'une des DLL C#, j'ai ajouté une méthode d'extension à la classe System.Net.IPAddress qui récupérera le masque de sous-réseau pour l'objet IPAddress (en utilisant la classe UnicastIPAddressInformation et son masque IPv4). La méthode d'extension fonctionne très bien sur le côté C#, mais je n'arrive pas à comprendre comment l'utiliser dans le code C++/CLI géré.
D'abord, est-ce encore possible? Si oui, à quoi ressemble la syntaxe du côté C++/CLI géré? Dois-je utiliser l'option/clr: pure pour que cela fonctionne?
Voici un exemple de la méthode d'extension:
using System.Net;
using System.Net.NetworkInformation;
public static class IPAddressExtensions
{
public static IPAddress GetSubnetMask(this IPAddress address)
{
UnicastIPAddressInformation addressInfo = address.GetAddressInformation(); // elided
return ((addressInfo != null) ? addressInfo.IPv4Mask : null);
}
}
Dans mon code managé C++, comment pourrais-je utiliser cette méthode d'extension, si elle est encore possible?
unsigned long bytes= 0x010000FF; // example address - 127.0.0.1
IPAddress^ address = gcnew IPAddress(BitConverter::GetBytes(bytes));
IPAddress^ subnet = address->GetSubnetMask(); // how do I do this???
@Reed Copsey: D'abord, merci! Deuxièmement, y a-t-il un bon didacticiel en ligne pour l'écriture de code C++ géré? La syntaxe m'échappe en ce moment, mais je dois y aller vite. Merci encore. –
Je ne connais pas un bon tutoriel en ligne mais pour ceux qui sont toujours intéressés, je recommande "C++/CLI In Action" de Nishant Sivakumar publié par Manning. – jschroedl
Voici un lien Amazon vers le livre susmentionné: http://www.amazon.com/CLI-Action-Manning-Nishant-Sivakumar/dp/1932394818 –