다음을 통해 공유


링커 도구 경고 LNK4092

공유 쓰기 가능 섹션 'section'에는 재배치가 포함됩니다. 이미지가 제대로 실행되지 않을 수 있습니다.

링커는 잠재적으로 심각한 문제를 경고하는 공유 섹션이 있을 때마다 이 경고를 내보낸다.

여러 프로세스 간에 데이터를 공유하는 한 가지 방법은 섹션을 "공유"로 표시하는 것입니다. 그러나 섹션을 공유로 표시하면 문제가 발생할 수 있습니다. 예를 들어 공유 데이터 섹션에 다음과 같은 선언이 포함된 DLL이 있습니다.

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

링커는 해당 값이 DLL이 메모리에 로드되는 위치에 따라 달라지므로 DLL에 재배치 레코드를 배치하므로 확인할 pvar 수 없습니다. DLL이 메모리에 로드되면 주소를 var 확인하고 pvar 할당할 수 있습니다. 다른 프로세스가 동일한 DLL을 로드하지만 동일한 주소에서 로드할 수 없는 경우 두 번째 프로세스에 대한 주소 var 재배치가 업데이트되고 첫 번째 프로세스의 주소 공간이 잘못된 주소를 가리킵니다.