Megosztás a következőn keresztül:


Fordító figyelmeztetése (3. szint) C4398

"változó" : előfordulhat, hogy a folyamatonkénti globális objektum nem működik megfelelően több alkalmazástartománysal; fontolja meg a __declspec(appdomain) használatát

Megjegyzések

Egy natív típusú __clrcall hívási konvencióval rendelkező virtuális függvény alkalmazástartományonkénti virtuális táblát hoz létre. Előfordulhat, hogy egy ilyen változó több alkalmazástartományban való használatkor nem helyesen működik.

Ezt a figyelmeztetést a változó __declspec(appdomain)explicit megjelölésével oldhatja meg. A Visual Studio 2017 előtti verzióiban ezt a figyelmeztetést a /clr:pure fájllal oldhatja meg, amely alapértelmezés szerint alkalmazástartományonként globális változókat hoz létre. A /clr:pure fordító beállítás elavult a Visual Studio 2015-ben, és nem támogatott a Visual Studio 2017-ben.

További információt az appdomain és az Application Domains, valamint a Visual C++ című témakörben talál.

Example

Az alábbi példa C4398-at hoz létre.

// 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