Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
'functie': maakt gebruik van pinning-pointers, maar wordt de unwind-semantiek niet ingeschakeld. Overweeg om /EHa te gebruiken
Opmerkingen
Om een object op de beheerde heap los te maken waarnaar wordt verwezen door een pinning pointer die in een blokscope is gedeclareerd, simuleert de compiler het gedrag van destructors van lokale klassen, alsof de pinning pointer een destructor heeft die de pointer nullificeert. Als u een aanroep naar een destructor wilt inschakelen nadat u een uitzondering hebt opgeworpen, moet u object unwinden inschakelen, wat u kunt doen met /EHsc.
U kunt het object ook handmatig losmaken en de waarschuwing negeren.
Example
In het volgende voorbeeld wordt C4823 gegenereerd.
// C4823.cpp
// compile with: /clr /W3 /EHa-
using namespace System;
ref struct G {
int m;
};
void f(G ^ pG) {
try {
pin_ptr<int> p = &pG->m;
// manually unpin, ignore warning
// p = nullptr;
throw gcnew Exception;
}
catch(Exception ^) {}
} // C4823 warning
int main() {
f( gcnew G );
}