gpt4 book ai didi

c++ - wininet.dll 中看似随机崩溃的原因?

转载 作者:行者123 更新时间:2023-12-01 22:38:49 36 4
gpt4 key购买 nike

我在 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::RunSM+0x2b
wininet!CFsm::Run+0x39
wininet!DoFsm+0x25
wininet!InternetReadFile+0x3ca

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

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/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com