0
회사의 주 응용 프로그램은 OLE 문서를 사용합니다. 주기적으로, 그리고 예기치 않게 프로그램은 템플릿 문서를 부적절하게 닫습니다. 언젠가 오픈했을 때 무작위로 OS가 던졌습니다. STG_E_SHAREVIOLATION
RELEASE C++ 매크로 정의
사용자가 응용 프로그램을 종료하거나 메뉴에서 파일/닫기를 선택할 때 파일을 닫는 방법이 문제 일 수 있다고 생각했습니다. 많은 디버깅/추적 후 OLEDOC1.CPP (MFC 라이브러리의 일부)에
까지옵니다. 특히 RELEASE (m_lpRootStg) 매크로 행 이 줄을 실행하기 전에 문서를 이동하거나 삭제하려고하면 파일이 사용 중임을 OS에 알립니다. 이 행 다음에 파일이 닫히고 이동할 수 있습니다.
이 방법을 서브 클래 싱하여 다른 방법으로 파일을 닫으려고합니다. 그러나 어디에서나 RELEASE 매크로의 정의를 찾을 수 없습니다. 가장 가까운 것은 IBM의 코드입니다. 이 매크로는 어디에 정의되어 있습니까? 그 정의는 무엇입니까?
그것은 MFC의 src 디렉토리에 oleimpl2.h에있어
감사합니다! 매크로를 마우스 오른쪽 버튼으로 클릭하여 정의로 이동하면 응용 프로그램의 코드로 되돌아갑니다. 어떤 이유로 나는 FINDSTR 결과에서 그것을 놓쳤다. –