最近做一个网络过滤软件,遇到一个问题百思不得其解:
在WSACONNECT(SOCKET s,...)分析了远端IP地址数据后放入session结构体的一个变量中
然后做如下判断
int CheckConnect(...)
{
...
return GetAccessInfoIP(m_Session+index);
}
其中SESSION *m_Session;
index是对应于这个s的索引号;
GetAccessInfoIP的函数原型是:int GetAccessInfoIP(SESSION *session);问题是:
程序(DLL)编译运行都没有问题,运行IE访问网页开始也没有问题,再继续开了几个网页后就会IE自动关闭或者出现IE出错的对话框,
点击调试后发现就是上面的return语句出错。检查发现m_Session+index作为传入参数没有问题,可在GetAccessInfoIP(SESSION *session)
中检查发现session指针的地址存在(但与m_Session+index的地址不符)而且session数组的内容全为“CXX0030: Error: expression cannot be evaluated“
之前m_Session+index数组中的内容都是正确的。搞了很久也没弄清楚错误所在 环境是vc6.0,并且用boundchecker检查过没有发现异常错误。在此向各位高手求教,另外像这样的网络软件大家都怎么测试的?有没有好的方法
期待大家解答,不胜感激!
在WSACONNECT(SOCKET s,...)分析了远端IP地址数据后放入session结构体的一个变量中
然后做如下判断
int CheckConnect(...)
{
...
return GetAccessInfoIP(m_Session+index);
}
其中SESSION *m_Session;
index是对应于这个s的索引号;
GetAccessInfoIP的函数原型是:int GetAccessInfoIP(SESSION *session);问题是:
程序(DLL)编译运行都没有问题,运行IE访问网页开始也没有问题,再继续开了几个网页后就会IE自动关闭或者出现IE出错的对话框,
点击调试后发现就是上面的return语句出错。检查发现m_Session+index作为传入参数没有问题,可在GetAccessInfoIP(SESSION *session)
中检查发现session指针的地址存在(但与m_Session+index的地址不符)而且session数组的内容全为“CXX0030: Error: expression cannot be evaluated“
之前m_Session+index数组中的内容都是正确的。搞了很久也没弄清楚错误所在 环境是vc6.0,并且用boundchecker检查过没有发现异常错误。在此向各位高手求教,另外像这样的网络软件大家都怎么测试的?有没有好的方法
期待大家解答,不胜感激!
解决方案 »
- 求助:如何通过组合框COMBObox来控制编辑框EDIT的只读/编辑属性???
- 同在以个文件,有的就是重复定义,有的不是?
- 如何在VC中把查询多个记录的实现封装成一个方法?
- 请问那位大侠知道哪里有《深入浅出MFC》这本书下载!
- ===求画线算法(分不够再加!)===
- INADDR_NONE和INADDR_ANY是什么意思?
- hwnd???呵呵呵呵呵
- 各位大虾:那位对钩子函数比较了解?
- CFileDialog 的内存分配
- VC2010中CString类型和UINT类型进行运算
- Temporary Internet Files 文件访问
- 帮忙看看为什么我的这个图形程序运行一会之后所有图形会变白色?
中检查发现session指针的地址存在(但与m_Session+index的地址不符)而且session数组的内容全为“CXX0030: Error: expression cannot be evaluated“ 错误肯定在这,m_Session数组里的变量是否有一些变化,
index并不越界,之前用了函数做过判断
我也在这里检查了很久,变量突然都变成:CXX0030: Error: expression cannot be evaluated“ 另外:自己用CWinInet写了个访问网页的类用来调试程序,单步跟踪都很正常,数据也不会出错!在IE多线程访问的情况下就有问题了,
请大家帮我出出主意。若有兴趣,留下邮箱,可以传份源代码