LNK4092 Peringatan Alat Linker
bagian bisa-tulis bersama 'bagian' berisi relokasi; gambar mungkin tidak berjalan dengan benar
Linker memancarkan peringatan ini setiap kali Anda memiliki bagian bersama untuk memperingatkan Anda tentang masalah yang berpotensi serius.
Salah satu cara untuk berbagi data antara beberapa proses adalah dengan menandai bagian sebagai "dibagikan." Namun, menandai bagian sebagai dibagikan dapat menyebabkan masalah. Misalnya, Anda memiliki DLL yang berisi deklarasi seperti ini di bagian data bersama:
int var = 1;
int *pvar = &var;
Linker tidak dapat diselesaikan pvar
karena nilainya tergantung pada tempat DLL dimuat dalam memori, sehingga menempatkan catatan relokasi di DLL. Ketika DLL dimuat ke dalam memori, alamat var
dapat diselesaikan dan pvar
ditetapkan. Jika proses lain memuat DLL yang sama tetapi tidak dapat memuatnya di alamat yang sama, relokasi untuk alamat var
akan diperbarui untuk proses kedua dan ruang alamat proses pertama akan menunjuk ke alamat yang salah.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk