- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include "stdafx.h"
#include "Http.h"
#pragma comment (lib,"Httpapi.lib")
int _tmain(int argc, _TCHAR* argv[])
{
HTTPAPI_VERSION HttpApiVersion = HTTPAPI_VERSION_1;
ULONG ret = NO_ERROR;
HRESULT hr = S_OK;
HTTPAPI_VERSION ver = HTTPAPI_VERSION_1;
ret = HttpInitialize(ver,HTTP_INITIALIZE_SERVER|HTTP_INITIALIZE_CONFIG,NULL);
if(ret!=NO_ERROR)
{
return 0;
}
HTTP_SERVICE_CONFIG_ID configId = HttpServiceConfigIPListenList;
HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY* query=NULL;
ULONG size=1000;
ULONG re = HttpQueryServiceConfiguration(NULL,configId,NULL,NULL,query,NULL,&size,NULL);
printf("re = %d",re);
getchar();
return 0;
}
这个重新结果总是 122 (ERROR_INSUFFICIENT_BUFFER) 。我不知道原因。这是 HttpQueryServiceConfiguration 函数的链接: https://msdn.microsoft.com/en-us/library/windows/desktop/aa364491
最佳答案
根据您链接到的引用,您作为函数指针传递的 size
是 pReturnLength
,它是一个输出 参数,并且是
A pointer to a variable that receives the number of bytes to be written in the output buffer.
[强调我的]
您提供的缓冲区大小在之前的参数中,即 OutputConfigInfoLength
参数中。当然,如果你想写入一些数据,你需要实际提供一个缓冲区来存储它,你传递 NULL
作为参数(query
被初始化为 NULL
).
另请注意,如果函数因 ERROR_INSUFFICIENT_BUFFER
而失败,作为 pReturnLength
传递的变量将包含函数成功所需的实际 长度。因此,您应该做的是首先使用零缓冲区大小调用它,以获得所需的大小,然后再次调用它以实际获取信息。
有点像
HTTP_SERVICE_CONFIG_ID configId = HttpServiceConfigIPListenList;
ULONG size;
ULONG re = HttpQueryServiceConfiguration(NULL,configId,NULL,0,NULL,0,&size,NULL);
if (re != ERROR_INSUFFICIENT_BUFFER)
{
// We got an unknown error, handle it
}
else
{
// Allocate a buffer big enough for the data
HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY* query =
reinterpret_cast<HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY*>(new char[size]);
// Call the function again
re = HttpQueryServiceConfiguration(NULL,configId,NULL,0,query,size,&size,NULL);
// Here you should have the information you want in `query`
// Use the data
// Free the memory
delete[] query;
}
关于c++ - HttpQueryServiceConfiguration 总是返回 ERROR_INSUFFICIENT_BUFFER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35032303/
我正在尝试通过调用 HttpQueryServiceConfiguration 为我的 Http 服务器获取一些配置信息(使用 Smalltalk 中的 HTTP SERVER API 2.0 实现)
#include "stdafx.h" #include "Http.h" #pragma comment (lib,"Httpapi.lib") int _tmain(int argc, _TCHA
我是一名优秀的程序员,十分优秀!