Megosztás a következőn keresztül:


Fordító figyelmeztetése (1. szint) C4835

"változó": az exportált adatok inicializálója nem lesz futtatva, amíg a felügyelt kód először nem lesz végrehajtva a gazdagépszerelvényben

Megjegyzések

A felügyelt összetevők közötti adatok elérésekor javasoljuk, hogy ne használjon natív C++ importálási és exportálási mechanizmusokat. Ehelyett deklarálja az adattagokat egy felügyelt típuson belül, és hivatkozzon a metaadatokra #using az ügyfélben. További információ: #using irányelv.

Példák

Az alábbi példa C4835-öt hoz létre.

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

Az alábbi példa az előző példában létrehozott összetevőt használja fel, amely azt mutatja, hogy a változók értéke nem a várt módon történik.

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