Gibt es einen direkten Weg zu tun, was pin_ptr tut?
-
06-07-2019 - |
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?
Ein Beispiel von dem, was Ich mag ist ein Wrapper für eine pin_ptr
tun würde (nicht wegen der Beschränkungen 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)
}
};
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