Pergunta

Pode o comportamento de pin_ptr ser alcançado diretamente em C ++ / CLI? Por exemplo, é possível código CLR escrita diretamente, algo como asm para aplicativos nativos?

Um exemplo do que eu gostaria de fazer é um wrapper para um pin_ptr (impossível devido às restrições sobre pin_ptrs).

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)
    }
};
Foi útil?

Solução

Use a GCHandle.Alloc . com GCHandleType.Pinned . então você pode usar GCHandle.AddrOfPinnedObject para obter o endereço do objeto .NET.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top