Есть ли прямой способ сделать то, что делает pin_ptr? - PullRequest
1 голос
/ 19 июня 2009

Может ли поведение pin_ptr быть достигнуто непосредственно в C ++ / CLI? Например, можно ли написать код CLR напрямую, например, asm для нативных приложений?

Примером того, что я хотел бы сделать, является оболочка для pin_ptr (невозможно из-за ограничений на pin_ptr s).

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 Ответ

1 голос
/ 10 июля 2009

Используйте GCHandle.Alloc . с GCHandleType.Pinned . Затем вы можете использовать GCHandle.AddrOfPinnedObject , чтобы получить адрес объекта .NET.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...