【已解决可更新】VS2008 写入位置 0xCDCDCDCD 时发生访问冲突

博客讨论了在VS2008项目中遇到的SOCKET类型成员变量访问冲突问题,以及在调用成员函数时出现的‘写入位置0xCDCDCDCD时发生访问冲突’和‘CXX0030:错误:无法计算表达式的值’错误。作者提到这两个问题可能与空指针和未初始化的变量有关,并提供了临时解决方案,即直接在主线程中处理网络通信。文章强调了VS2008与高版本IDE在处理这类问题上的差异,提醒开发者注意编码细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题分两个小问题来细说。问题的背景是VS2008项目中封装了网络协议接口类,对象成员有一个SOCKET类型成员变量和封装的进行三次握手的成员函数。在调用成员函数时报错发生访问冲突。

1、写入位置 0xCDCDCDCD 时发生访问冲突

跟进问题之后,发现涉及到了未进行处理的SOCKET变量。主要还是优先排查有没有空指针之类的问题。在数据窗口进一步排查,发现了下面的第二个小问题。

 

2、CXX0030: 错误: 无法计算表达式的值的问题

在主进程的基类中,可以看到涉及TCP部分的成员变量无法获取具体值

 这个问题和VS2017不同,高版本IDE对于未处理的变量会赋特殊值。可能长期使用高版本VS会忽略这方面。但是也是一个需要注意的部分。

原版写法

pMainWnd->TcpServer->InitTCPSever();//成员函数中处理

改进写法

...
sockClient = socket(AF_INET, SOCK_STREAM, 0);


addrSrv.sin_family = AF_INET;
...

//直接进行网络通信处理

对于这个问题的处理,目前是解除了一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值