Share via


Upozornění kompilátoru (úroveň 1) C4835

Proměnná: Inicializátor exportovaných dat se nespustí, dokud se v sestavení hostitele nespustí spravovaný kód.

Při přístupu k datům mezi spravovanými komponentami se doporučuje nepoužívat nativní mechanismy importu a exportu C++. Místo toho deklarujte datové členy uvnitř spravovaného typu a odkazujte na metadata v #using klientovi. Další informace naleznete v tématu #using směrnice.

Příklady

Následující ukázka vygeneruje C4835.

// C4835.cpp
// compile with: /W1 /clr /LD
int f() { return 1; }
int n = 9;

__declspec(dllexport) int m = f();   // C4835
__declspec(dllexport) int *p = &n;   // C4835

Následující ukázka využívá komponentu integrovanou v předchozí ukázce, která ukazuje, že hodnota proměnných není podle očekávání.

// C4835_b.cpp
// compile with: /clr C4835.lib
#include <stdio.h>
__declspec(dllimport) int m;
__declspec(dllimport) int *p;

int main() {
   printf("%d\n", m);
   printf("%d\n", p);
}
0
268456008