Verzeihen Sie mir, wenn meine Terminologie ein wenig aus ist. Mein Wissen über Managed C++/CLI ist sehr begrenzt.Verwenden von C# -Erweiterungsmethoden aus verwalteten C++/CLI
Ich habe eine MFC-Anwendung, die eine DLL mit der Option/CLR aktiviert verwendet. Diese DLL verwendet ein paar C# -Dlls, um mit einem Server über WCF zu kommunizieren. In den meisten Fällen funktioniert das gut.
In einer der C# -Dlls habe ich eine Erweiterungsmethode zur System.Net.IPAddress-Klasse hinzugefügt, die die Subnetzmaske für das IPAddress-Objekt abruft (unter Verwendung der UnicastIPAddressInformation-Klasse und ihrer IPv4Mask). Die Erweiterungsmethode funktioniert auf der C# -Seite sehr gut, aber ich kann nicht herausfinden, wie sie im verwalteten C++/CLI-Code verwendet wird.
Erstens, ist das überhaupt möglich? Wenn ja, wie sieht die Syntax auf der verwalteten C++/CLI-Seite aus? Muss ich die Option/clr: pure verwenden, damit dies funktioniert?
Hier ist ein Beispiel für die Erweiterung Methode:
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);
}
}
In meinem Managed C++ Code, wie würde ich diese Erweiterung Methode zu verwenden, wenn es überhaupt möglich ist?
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: Zuerst, danke! Zweitens, gibt es ein gutes Online-Tutorial zum Schreiben von verwaltetem C++ - Code? Die Syntax entgeht mir gerade, aber ich muss es schnell schaffen. Danke noch einmal. –
Ich kenne kein gutes Online-Tutorial, aber für diejenigen, die noch interessiert sind, empfehle ich "C++/CLI In Action" von Nishant Sivakumar, veröffentlicht von Manning. – jschroedl
Hier ist ein Amazon-Link zu dem oben genannten Buch: http://www.amazon.com/CLI-Action-Manning-Nishant-Sivakumar/dp/1932394818 –