Partilhar via


Aviso de ferramentas de vinculação LNK4092

a secção «secção» escrita partilhada contém deslocalizações; imagem pode não ser executada corretamente

Observações

O vinculador emite esse aviso sempre que você tem uma seção compartilhada para avisá-lo de um problema potencialmente sério.

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 seu valor 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 para o 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.