我在wininet.dll中崩溃了。
尝试读取HTTP_REQUEST_HANDLE_OBJECT::ReleaseConnection中的零内存位置时崩溃

这是实际DLL中的错误,不是由使用不当引起的吗?



上下文是我正在尝试下载文件。我在打电话

InternetReadFile(hFile,lpBuffer,dwNumberOfBytesToRead,lpdwNumberOfBytesRead);

hFile HINTERNET句柄似乎很好(值是0x00cc0024,这似乎合法)dwNumberOfBytesToRead是20000。

我的缓冲区大小为131000,也可以。

关键是我的代码在99.9999%的时间内都能正常工作!

最佳答案

检查lpdwNumberOfBytesRead的使用。应该是

DWORD *lpdwNumberOfBytesRead = &someDWORDsomewhere;
InternetReadFile (..., lpdwNumberOfBytesRead);

要么
DWORD NumBytes
InternetReadFile (..., &NumBytes);

我有一种感觉,您在第一种方法中未将指针变量设置为有效。

关于c++ - Wininet.dll中看似随机崩溃的原因?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3471321/

10-09 05:50