Bagikan melalui


Peringatan Kompilator (tingkat 1) C4835

'variabel' : inisialisasi untuk data yang diekspor tidak akan dijalankan sampai kode terkelola pertama kali dijalankan di rakitan host

Saat mengakses data antar komponen terkelola, disarankan agar Anda tidak menggunakan mekanisme impor dan ekspor C++ asli. Sebagai gantinya, deklarasikan anggota data Anda di dalam jenis terkelola dan referensikan metadata dengan #using di klien. Untuk informasi selengkapnya, lihat Direktif #using.

Contoh

Sampel berikut menghasilkan 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

Sampel berikut menggunakan komponen yang dibangun dalam sampel sebelumnya, menunjukkan bahwa nilai variabel tidak seperti yang diharapkan.

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