Dela via


Kompilatorvarning (nivå 1) C4835

Variabel: initieraren för exporterade data körs inte förrän den hanterade koden först körs i värdsammansättningen

Anmärkningar

När du kommer åt data mellan hanterade komponenter rekommenderar vi att du inte använder inbyggda mekanismer för C++-import och export. Deklarera i stället dina datamedlemmar i en hanterad typ och referera till metadata med #using i klienten. Mer information finns i #using-direktivet.

Examples

I följande exempel genereras 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

I följande exempel används komponenten som skapades i föregående exempel, vilket visar att värdet för variablerna inte är som förväntat.

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