Frage

Kann das Verhalten von pin_ptr direkt in C erreicht wird ++ / CLI? Zum Beispiel ist es möglich, CLR-Code direkt, so etwas wie asm für native Anwendungen?

schreiben

Ein Beispiel von dem, was Ich mag ist ein Wrapper für eine pin_ptr tun würde (nicht wegen der Beschränkungen 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)
    }
};
War es hilfreich?

Lösung

Verwenden Sie ein GCHandle.Alloc . mit GCHandleType.Pinned . Sie können dann mit GCHandle.AddrOfPinnedObject die Adresse des .NET-Objekts zu erhalten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top