내 코드에서 XML 구문 분석 문제로 보이는 것을 디버깅하려고합니다. 나는 다음과 같은 코드로 아래로 격리했다 :IXMLDOMDocument :: load()에 대한 호출이 실패하는 이유를 어떻게 알 수 있습니까?
HRESULT
CXmlDocument::Load(IStream* Stream)
{
CComVariant xmlSource(static_cast<IUnknown*>(Stream));
VARIANT_BOOL isSuccessful;
* HRESULT hr = m_pXmlDoc->load(xmlSource, &isSuccessful);
return (hr == S_FALSE) ? E_FAIL : hr;
}
참고 :m_pXmlDoc
는 유형 CComPtr<IXMLDOMDocument>
이다.
IXMLDOMDocument::load()
(*로 표시)에 대한 호출이 실패 함 - IOW, 이는 S_FALSE
입니다.
COM 통화이므로 load()
으로 들어가서 실패 이유를 판단 할 수 없습니다.
이 방법의 경우 MSDN page은 많은 통찰력을 제공하지 않는 것 같습니다.
내가 몇 예감이 : XML이 XML 파일이 너무 큰- (약 120메가바이트)
- 그것은 메모리 관련 문제를 (프로세스 크기 도착에> 2기가바이트 실패시)에
- NB : 레지스트리 키가 AFAIK, WINXP의 가장 큰 유효한 프로세스 크기로, 프로세스 크기가이 클 수 있도록 설정되어, 2GB입니다. 왜이 호출이 실패 할 수에 관해서는
어떤 아이디어?
'parseError' 해봤습니까? http://msdn.microsoft.com/en-us/library/ms756041%28VS.85%29.aspx –