Compartilhar via


Aviso das ferramentas de vinculador LNK4092

a seção 'section' gravável compartilhada contém realocações; a imagem pode não ser executada corretamente

O vinculador emitirá esse aviso sempre que você tiver uma seção compartilhada para avisar você de um problema potencialmente grave.

Uma maneira de compartilhar dados entre vários processos é marcar uma seção como "compartilhada". No entanto, marcar uma seção como compartilhada pode causar problemas. Por exemplo, você tem uma DLL que contém declarações como esta em uma seção de dados compartilhados:

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

O vinculador não pode resolver pvar porque valor dela depende de onde a DLL é carregada na memória, portanto, ele coloca um registro de realocação na DLL. Quando a DLL é carregada na memória, o endereço de var pode ser resolvido e pvar atribuído. Se outro processo carregar a mesma DLL, mas não puder carregá-la no mesmo endereço, a realocação do endereço de var será atualizada para o segundo processo e o espaço de endereço do primeiro processo apontará para o endereço errado.