相关疑难解决方法(0)

使用托管C++/CLI中的C#扩展方法

如果我的术语有点偏离,请原谅我.我对托管C++/CLI的了解非常有限.

我有一个MFC应用程序使用启用了/ clr选项的DLL.这个dll使用几个C#dll与使用WCF的服务器通信.在大多数情况下,这工作正常.

在C#的DLL中的一个,我已经添加扩展方法的System.Net.IPAddress类,将检索的对象的IPAddress子网掩码(使用UnicastIPAddressInformation类及其IPv4Mask).扩展方法在C#方面运行良好,但我无法弄清楚如何在托管C++/CLI代码中使用它.

首先,这甚至可能吗?如果是这样,托管C++/CLI端的语法是什么样的?我必须使用/ clr:pure选项才能使用吗?

以下是扩展方法的示例:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的托管C++代码中,如果可能的话,我将如何使用此扩展方法?

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???
Run Code Online (Sandbox Code Playgroud)

.net c# unmanaged c++-cli .net-3.5

10
推荐指数
1
解决办法
4787
查看次数

如何在C++中的WinRT IBuffer中包装char*缓冲区

我想实现一个包装char*缓冲区的C++ WinRT IBuffer,所以我可以将它用于接受IBuffer ^参数的WinRT WriteAsync/ReadAsync操作.

编辑1(澄清)

我想避免数据复制.

c++ windows-runtime

9
推荐指数
2
解决办法
5291
查看次数

标签 统计

.net ×1

.net-3.5 ×1

c# ×1

c++ ×1

c++-cli ×1

unmanaged ×1

windows-runtime ×1