有没有直接的方法去做pin_ptr呢?

时间:2009-06-19 08:36:27

标签: c++-cli

pin_ptr的行为可以直接在C ++ / CLI中实现吗?例如,是否可以直接编写CLR代码,例如本地应用程序的asm

我想做的一个例子是pin_ptr的包装(由于pin_ptr的限制而不可能)。

class WrappedPtr
{
public:
    explicit WrappedPtr(String^ s)
    {
        pin = PtrToStringChars(s);
        // I want to pin s for the lifetime of this object (only used on the stack)
    }
};

1 个答案:

答案 0 :(得分:1)

使用GCHandle.Alloc。与GCHandleType.Pinned。然后,您可以使用GCHandle.AddrOfPinnedObject获取.NET对象的地址。