Bağlayıcı Araçları Uyarısı LNK4092

paylaşılan yazılabilir bölüm 'section' yeniden konumlandırmalar içeriyor; görüntü düzgün çalışmayabilir

Bağlayıcı, ciddi olabilecek bir sorun konusunda sizi uyarmak için paylaşılan bir bölümünüz olduğunda bu uyarıyı yayar.

Birden çok işlem arasında veri paylaşmanın bir yolu, bir bölümü "paylaşılan" olarak işaretlemektir. Ancak, bir bölümü paylaşılan olarak işaretlemek sorunlara neden olabilir. Örneğin, paylaşılan veriler bölümünde bunun gibi bildirimler içeren bir DLL'niz vardır:

int var = 1;
int *pvar = &var;

Bağlayıcı çözümlenemiyor pvar çünkü değeri DLL'nin belleğe yüklendiği yere bağlı olduğundan DLL'ye yeniden konumlandırma kaydı yerleştirir. DLL belleğe yüklendiğinde adresi var çözümlenebilir ve pvar atanabilir. Başka bir işlem aynı DLL'yi yükler ancak aynı adrese yükleyemezse, adresinin var yeniden yerleştirilmesi ikinci işlem için güncelleştirilir ve ilk işlemin adres alanı yanlış adrese işaret eder.