Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
'Variable': Globales Objekt pro Prozess funktioniert möglicherweise nicht ordnungsgemäß mit mehreren App-Domänen. Erwägen Sie die Verwendung von __declspec(appdomain)
Hinweise
Eine virtuelle Funktion mit __clrcall Aufrufkonvention in einem systemeigenen Typ bewirkt die Erstellung einer pro Anwendungsdomäne vtable. Eine solche Variable stimmt möglicherweise nicht ordnungsgemäß, wenn sie in mehreren Anwendungsdomänen verwendet wird.
Sie können diese Warnung beheben, indem Sie die Variable __declspec(appdomain)
explizit markieren. In Versionen von Visual Studio vor Visual Studio 2017 können Sie diese Warnung beheben, indem Sie mit "/clr:pure" kompilieren, wodurch standardmäßig globale Variablen pro App-Domäne erstellt werden. Die Option "/clr:pure compiler" ist in Visual Studio 2015 veraltet und wird in Visual Studio 2017 nicht unterstützt.
Weitere Informationen finden Sie unter "appdomain " und "Application Domains" und "Visual C++".
Beispiel
Im folgenden Beispiel wird C4398 generiert.
// 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