gpt4 book ai didi

c++ - hstrerror() 的替换函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:31:46 26 4
gpt4 key购买 nike

我正在将 linux 套接字库转换为 windows,但 winsock 没有 hstrerror() 函数。 hstrerror() 会接受 h_errno 并吐出一个错误字符串。我认为类似于strerror。我环顾四周,但实际上没有人说用什么来代替它。除了“它已被弃用,请改用 getaddrinfo()getnameinfo()”,我没有发现任何关于 hstrerror 被替换的内容。具体来说,我有一个使用它的异常类。代码如下:

//
// class socket_h_error
// subclass to record status of extern int h_errno variable
//

class socket_h_error : public socket_error {
public:
int host_errno;
//TODO: replace hstrerror()
explicit socket_h_error(const string& what) :
socket_error(what + ": " + hstrerror(h_errno)),
host_errno(h_errno) {}

};

我确实必须替换 strerror(),但我没有看到它可以替换 hstrerror()。它在 winsock2 库中也不存在,所以我没有从 MS 那里得到任何建议。

最佳答案

使用WSAGetLastError()FormatMessage() .

WSAGetLastError()在MSDN所有winsock相关的函数中都有明确的提及。

关于c++ - hstrerror() 的替换函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57137598/

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