VS在调用getaddrinfo()时的result结构体参数写入时访问冲突

做的一个简单的对话框tcp通信界面,这段程序是想自动获取本机IP和端口号,但是在本地调试的时候无论我的result参数怎么设置,都会出现访问冲突问题。
编译时已经将重定义的变量用static的设置解决了,而且没在这段程序体现(也没影响这个模块)。


代码如下

// 获取本机IP和名称
WORD wVersionRequested;
WSADATA wsaData;
struct addrinfo hostinfo, *hi;
int s;
wVersionRequested = MAKEWORD(2, 0);
memset(&hostinfo, 0, sizeof(struct addrinfo));
hostinfo.ai_family = AF_INET; // Allow IPv4
hostinfo.ai_socktype = SOCK_STREAM;
hostinfo.ai_flags = AI_ALL;
hostinfo.ai_protocol = IPPROTO_TCP;
hi = &hostinfo;

if (WSAStartup(wVersionRequested, &wsaData) == 0)
{
s = getaddrinfo(hostName, (PCSTR)m_port, &hostinfo, NULL);
if (s == 0)
{
hi = &hostinfo;
if (hi != NULL)
{
char str[INET_ADDRSTRLEN];
c_hostIP = inet_ntop(AF_INET, (struct in_addr*) hi->ai_addr, str, sizeof(str)); // 将IP以CString格式储存在封装变量中便于调用
}
}
freeaddrinfo(hi);
WSACleanup();
}


希望有大佬能帮忙看看到底怎么回事,谢谢。
...全文
186 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
已经用别的逻辑绕开这个问题了……

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧