Ostrzeżenie kompilatora (poziom 1) C4835
"zmienna": inicjator wyeksportowanych danych nie zostanie uruchomiony do momentu pierwszego wykonania kodu zarządzanego w zestawie hosta
Podczas uzyskiwania dostępu do danych między składnikami zarządzanymi zaleca się, aby nie używać natywnych mechanizmów importowania i eksportowania języka C++. Zamiast tego zadeklaruj elementy członkowskie danych wewnątrz typu zarządzanego i odwołuj się do metadanych #using
w kliencie. Aby uzyskać więcej informacji, zobacz #using Dyrektywy.
Przykłady
Poniższy przykład generuje kod 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
Poniższy przykład używa składnika wbudowanego w poprzednim przykładzie, pokazując, że wartość zmiennych nie jest zgodnie z oczekiwaniami.
// 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