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.
'variabele': globaal object per proces werkt mogelijk niet correct met meerdere appdomains; overweeg om __declspec(appdomain) te gebruiken
Opmerkingen
Een virtuele functie met __clrcall aanroepconventie in een systeemeigen type zorgt ervoor dat een vtable per toepassingsdomein wordt gemaakt. Een dergelijke variabele kan niet correct worden gecorrigeerd wanneer deze in meerdere toepassingsdomeinen wordt gebruikt.
U kunt deze waarschuwing oplossen door de variabele __declspec(appdomain)expliciet te markeren. In versies van Visual Studio voor Visual Studio 2017 kunt u deze waarschuwing oplossen door te compileren met /clr:pure, waardoor globale variabelen standaard per appdomein worden gemaakt. De optie /clr:pure compiler is afgeschaft in Visual Studio 2015 en wordt niet ondersteund in Visual Studio 2017.
Zie appdomain en Application Domains en Visual C++ voor meer informatie.
Example
In het volgende voorbeeld wordt C4398 gegenereerd.
// C4398.cpp
// compile with: /clr /W3 /c
struct S {
virtual void f( System::String ^ ); // String^ parameter makes function __clrcall
};
S glob_s; // C4398
__declspec(appdomain) S glob_s2; // OK