Compartir a través de


Advertencia del compilador (nivel 1) C4835

"variable": el inicializador de los datos exportados no se ejecutará hasta que el código administrado se ejecute en primer lugar en el ensamblado de host

Al acceder a datos entre componentes administrados, se recomienda no usar mecanismos nativos de importación y exportación de C++. En su lugar, declare los miembros de datos dentro de un tipo administrado y haga referencia a los metadatos con #using en el cliente. Para obtener más información, vea #using (directiva).

Ejemplos

El ejemplo siguiente genera la advertencia 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

En el ejemplo siguiente, se consume el componente integrado en el ejemplo anterior, el que muestra que el valor de las variables no es el esperado.

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