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