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)
}
};
答案 0 :(得分:1)
使用GCHandle.Alloc。与GCHandleType.Pinned。然后,您可以使用GCHandle.AddrOfPinnedObject获取.NET对象的地址。