我在 wininet.dll 的深处崩溃了。它试图读取零内存位置时崩溃了HTTP_REQUEST_HANDLE_OBJECT::ReleaseConnection
这是实际 DLL 中的错误,而不是由于使用不当造成的吗?
wininet!HTTP_REQUEST_HANDLE_OBJECT::ReleaseConnection+0x60
wininet!HTTP_REQUEST_HANDLE_OBJECT::CloseConnection+0x84
wininet!HTTP_REQUEST_HANDLE_OBJECT::ReadData_Fsm+0x5e8
wininet!CFsm_ReadData::RunSM+0x2e
wininet!CFsm::Run+0x39
wininet!DoFsm+0x25
wininet!HTTP_REQUEST_HANDLE_OBJECT:: ReadData+0x38
wininet!HTTP_REQUEST_HANDLE_OBJECT::HttpReadData_Fsm+0x43
wininet!CFsm_HttpReadData::RunSM+ 0x2e
wininet!CFsm::Run+0x39
wininet!DoFsm+0x25
wininet!HttpReadData+0x67
wininet!ReadFile_Fsm+0x2d
wininet!CFsm_ReadFile::bSM+
wininet!CFsm::Run+0x39
wininet!DoFsm+0x25
wininet!InternetReadFile+0x3ca
上下文是我正在尝试下载文件。我打电话
InternetReadFile (hFile, lpBuffer, dwNumberOfBytesToRead, lpdwNumberOfBytesRead);
hFile HINTERNET 句柄似乎很好(值是 0x00cc0024,这似乎是合法的) dwNumberOfBytesToRead 是 20000。
我的缓冲区大小是 131000,这也很好。
问题是我的代码在 99.9999% 的时间内都能正常工作!