VS在调用getaddrinfo()时的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();
}
希望有大佬能帮忙看看到底怎么回事,谢谢。
相关推荐
检测tcp端口是否被占用
程序检测某个端口是否被tcp占用,vs2010测试通过。
C++实现轻量SMTP客户端:嵌入式与工控场景下的静态链接TLS方案
SMTP是一种基于TCP的应用层协议,用于可靠传输电子邮件;其核心原理包括状态化命令交互(HELO/EHLO、AUTH、MAIL FROM、RCPT TO、DATA)、响应码驱动的状态机,以及TLS加密通道的建立机制。在资源受限或高确定性要求的场景中,C++原生实现具备内存可控、无解释器依赖、启动快等技术价值,显著优于Python或Node.js等动态语言方案。典型应用场景涵盖工业设备远程诊断、车载ECU告警通信、金融高频交易日志投递及边缘网关邮件通知等。本文聚焦Windows平台下基于Winsock2与S
Codex CLI协议适配实战:让任意代码模型在终端跑起来
Codex CLI本质上是一个面向代码生成任务的标准化协议客户端,其核心原理是将本地命令(如generate、explain)翻译为符合后端AI服务规范的HTTP请求。技术价值在于解耦开发环境与模型部署——无需修改工具链,即可对接OpenAI、Ollama、国内云厂商等异构API。典型应用场景包括运维脚本自动化、数据科学快速编码、教学场景即时代码解释等。关键能力依赖于Endpoint路由配置与Request Body格式转换,尤其当使用非官方服务时,必须处理路径错位(如/v1/completions→/v1
Windows下ROS 2源码构建实战:稳定、可调试、可集成的工程化方案
ROS 2 是面向机器人系统的中间件框架,其核心依赖于C++/Python双语言支持、DDS通信中间件及跨平台构建系统。在Windows平台上,由于缺乏原生POSIX环境,二进制安装常导致RMW中间件锁定、调试符号缺失与DLL版本冲突等工程问题。源码构建通过colcon+pixi+MSVC工具链,实现对RMW实现(如Fast DDS/Cyclone DDS)的精确控制、完整PDB符号生成及依赖版本自主管理,显著提升调试确定性与CI/CD兼容性。该方案广泛应用于工业机器人上位机集成、MATLAB/Simuli
LiteParse v2:本地PDF解析提速100倍的Rust工程实践
PDF解析是RAG、知识库与文档智能的核心前置环节,其本质是将矢量绘图指令转化为结构化文本流。传统方案依赖模拟渲染、全局OCR和动态库绑定,导致延迟高、内存大、跨平台难、数据外泄风险高。LiteParse v2以Rust重写+PDFium深度定制为技术支点,实现空间驱动的按需提取与置信度感知的局部OCR,达成毫秒级响应、零网络外联、单二进制分发。它不替代LlamaIndex等上层框架,而是作为高精度、低延迟、强合规的‘文档入口牙齿’,支撑金融尽调、医疗病历、法律合同等敏感场景的本地化落地。


API
