私の用語がちょっと残っていると私に許してください。私のC++/CLIの知識は非常に限られています。管理されたC++/CLIからのC#拡張メソッドの使用
/clrオプションを有効にしてdllを使用するMFCアプリケーションがあります。このDLLは、WCFを使用するサーバーと通信するために、C#dllのカップルを使用します。ほとんどの場合、これは正常に動作します。
C#DLLの1つでは、(UnicastIPAddressInformationクラスとそのIPv4マスクを使用して)IPAddressオブジェクトのサブネットマスクを取得する拡張メソッドをSystem.Net.IPAddressクラスに追加しました。拡張メソッドはC#側でうまく機能しますが、管理されたC++/CLIコードでそのメソッドを使用する方法を理解することはできません。
まず、これも可能ですか?もしそうなら、管理されたC++/CLI側で構文はどのように見えますか?これを動作させるには/ clr:pureオプションを使用する必要がありますか?私は、この拡張メソッドを使用する方法、それも可能だ場合、私のマネージドC++コードで
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);
}
}
:
は、ここでの拡張メソッドの例ですか?
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:まずは、ありがとう!次に、マネージドC++コードを書くためのオンラインチュートリアルがありますか?構文は今私をエスケープするが、私は急いでそれをうまく処理する必要がある。再度、感謝します。 –
私は良いオンラインチュートリアルがわかりませんが、興味のある方はマニングが発行したNishant Sivakumarの "C++/CLI In Action"をお勧めします。 – jschroedl
上記の本へのAmazonリンクがあります:http://www.amazon.com/CLI-Action-Manning-Nishant-Sivakumar/dp/1932394818 –