Как освободить интерфейс Com-объекта

  • Автор темы berezh
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

berezh

#1
Помогите разобратся в ошиибке. При компиляции у этого кода ошибок нет:

#include "stdio.h"
#include "comutil.h"
#include "atlbase.h"
#include <msxml.h>

#import "msxml3.dll"
using namespace MSXML2;

void main()
{
CoInitialize(NULL);
HRESULT hr;
IXMLHTTPRequestPtr pIXMLHTTPRequest = NULL;
_bstr_t bstrText;
try
{
hr=pIXMLHTTPRequest.CreateInstance(_T("Msxml2.XMLHTTP.3.0"));
SUCCEEDED(hr) ? 0 : throw hr;
hr=pIXMLHTTPRequest->open(_T("GET"), _T("http://localhost/data.xml"), false);
SUCCEEDED(hr) ? 0 : throw hr;
hr=pIXMLHTTPRequest->send();
SUCCEEDED(hr) ? 0 : throw hr;
bstrText=pIXMLHTTPRequest->responseText;
}
catch (...)
{
printf("error...");
}
CoUninitialize();
}

после запуска выдает окно ошибки:

Unhandled exception at 0x00411d75 in exam.exe: 0xC0000005: Access violation reading location 0x0095a2f0.

После нажатия кнопки "Breack", указывает в файле comip.h на:

void _Release() throw()
{
if (m_pInterface != NULL) {
m_pInterface->Release();
}
}

В чем ошибка? :angry:
 
Статус
Закрыто для дальнейших ответов.