查看堆栈显示为:
768a21f1
KERNEL32! 7c826063()
768a21f1
KERNEL32! 7c826063()
解决方案 »
- MFC对话框,已经将整个对话框设置为半透明,在picture控件中插入了一张位图,想把位图的背景也设置成透明。
- 喜欢mfc的请进
- 关于VC++编译器的“Visual SourceSafe Login”问题。
- OnReceive和OnSend
- 新建的c/c++/vc交流学习群欢迎加入
- 'PostMessageA' : function does not take 4 parameters
- 完成端口资源回收的问题!!!!!
- GetAdaptersInfo 浏览到的网卡信息,如何判断是Link Down ?
- 请问如何设置网卡的混杂模式??????????,小弟郁闷很久,希望大虾帮忙!!!!!!!!
- 一个小例程,咋在vc6不可能运行呢?帮忙。
- 请问如果在stretchBits绘的图上面添加文字,曲线等~??~
- 为什么我不能在动态链接库的基类中定义派生类的实例啊
在Call Stack里面尽量找到自己的代码
SOCKET s = lp->s_hSocket;
就会出现那个问题,但是这样在Call Stack里是很容易看见在什么地方出错的,但我的程序出错后,Call Stack没任何有用的提示,仅仅两行提示:
768a21f1
KERNEL32! 7c826063()
这样的访问违规发生的代码行怎么找?
例如定义的int a[N],确使用a[N]:
int a[N];
a[N]=0;
特别代码复杂,下标表达式复杂的时候,最容易出这种错误,即使老手也不例外。
768a21f1
KERNEL32! 7c826063()首先我问你,你是在调试状态下运行debug版吗?
如果是的话,那就只有楼上说的了,靠经验
安装操作系统dll的调试符号?能详细说说吗,谢谢!
SOCKET s = lp->s_hSocket;
就会出现那个问题,但是这样在Call Stack里是很容易看见在什么地方出错的,但我的程序出错后,Call Stack没任何有用的提示,仅仅两行提示:
768a21f1
KERNEL32! 7c826063()==============================================
你的lp是个结构指针,你没有给它分配内存,它现在是个野指针,lp->s_hSocket操作当然后出现访问内存错误
解决办法:
方法一:
PER_HANDLE_DATA *lp = new PER_HANDLE_DATA ;
SOCKET s = lp->s_hSocket;
注意此方法在程序退出之前要用
delete lp;
lp = NULL;
释放内存,否则会造成内存泄漏方法二:
PER_HANDLE_DATA tp;
ZeroMemory(&tp, sizeof(PER_HANDLE_DATA));
SOCKET s = tp.s_hSocket;
在Debug下运行,没问题。
在Release下运行,就出现此问题。
原因已经找到,正在解决中。