gpt4 book ai didi

c++ - InternetGetLastResponseInfo 返回奇怪的字符而不是错误消息

转载 作者:行者123 更新时间:2023-11-28 07:14:39 25 4
gpt4 key购买 nike

我在调用 FtpOpenFile 后使用以下代码:

error=GetLastError();
if(error!=0)
{
if(error==ERROR_INTERNET_EXTENDED_ERROR)
{
InternetGetLastResponseInfo(&error,NULL,&bufferLength);
buffer=malloc(bufferLength);
InternetGetLastResponseInfo(&error,buffer,NULL);
printf("FtpOpenFile error : %s.\n",buffer);
}
else
{
printf("FtpOpenFile error : %d.\n",(int)error);
}
}

我确认了 error=ERROR_INTERNET_EXTENDED_ERROR,但没有打印类似的东西

FtpOpenFile 错误:服务器拒绝了请求,因为它对您有个人的厌恶,或者换句话说,对您有微妙的仇恨。

它给了我

FtpOpenFile 错误:x☺?。

谢谢。

最佳答案

您对 IntergetGetLastResponseInfo 的第二次调用是错误的;您没有按要求传递缓冲区的长度。您进行的第一次调用检索所需缓冲区的大小,但您仍然必须在第二次调用时告诉函数缓冲区有多大。(另请注意,文档说第一次调用返回的值不包括终止零的空间。)

InternetGetLastResponseInfo(&error, NULL, &bufferLength);
buffer = malloc(bufferLength + 1);
InternetGetLastResponseInfo(&error, buffer, &bufferLength);

参见 InternetGetLastReponseInfo documentation了解更多信息。

关于c++ - InternetGetLastResponseInfo 返回奇怪的字符而不是错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20435591/

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