2011-12-09 4 views
1

Visual C++로 작업하고 있습니다. 라이브러리의 소스 코드를 Lib이라고 부릅니다. 라이브러리는 .lib와 .dll로 구성됩니다. 내 주 프로젝트에서 .lib를 정적으로 링크하고 .dll을 실행 파일이있는 디렉토리에 놓습니다. 나는 메인 프로젝트에 메모리를 할당하고 (메모리에 파일을로드한다.), .dll의 객체에 그것을 전달하여 프로그램을 종료 할 때, 그 메모리에서 객체 호출을 삭제한다.메모리 할당/할당 해제 (Windows C++)

작동하는 것처럼 보이지만 확실하지 않습니다. 저에게 관심이있는 것은 제가 메인 프로젝트에 메모리를 할당하고 .dll에 메모리 할당을 해제하는 것입니다. 그들은 같은 힙에 있습니까?

답변

0

메모리 할당 런타임으로 공유 MSVC 라이브러리에 연결하는 한 작동합니다. 그런 다음 EXE와 DLL은 동일한 힙을 공유합니다.

이 종속성을 깨면 더 이상 힙이 공유되지 않으므로 다른 힙에있는 개체를 삭제하면 응용 프로그램이 망가질 수 있습니다.