program :C:\program files\sendmsg\sendmsg.exe
File :afxtls.cpp
Line :254
For information on how your program can cause on assertion failure,see the visual C++ documention on asserts"
我的程序已经出现好几次这样的错误了,每次总查不出是什么原因,重新启动它又可以正常运行.而且白天它不会出现,一到晚上就出现了.各位大哥大姐帮一下小弟.
7 个解决方案
#1
如果可以将你的程序代码发给我,我可以为你研究一下。
ROSEMENT@SINA.COM
ROSEMENT@SINA.COM
#2
我是用DELPHI编写.但运行时就出现以上错误.
#3
无论是什么语言----都见鬼了
#4
afxtls.cpp 是个关于Tls(线程本地存储)的代码文件,估计是你代码中
或是编译过程中,采用了tls技术, 你可以仔细查看一下线程处理的相关代码.
或是编译过程中,采用了tls技术, 你可以仔细查看一下线程处理的相关代码.
#5
to fanchka(狼仔):但我的程序并没有用到线程.其中只是创建了一个对象
createoleobject('sms.send');我不知道它里有没有这方面的东东.
createoleobject('sms.send');我不知道它里有没有这方面的东东.
#6
显示的是关于C++调试断言的错误,应该是你传送的变量(对象)有异常值吧!
#7
我看了 :afxtls.cpp Line :254 是个与线程相关的存入tls的公共值.
ASSERT(nSlot != 0 && nSlot < m_nMax);
代码处断言这个值不许为空,或着小于一个限度.
tls是个很特殊的东西,它和线程相关,每个线程均有一堆的时隙(slot),大小随
系统不同而有异(好像是2k以前的系统允许64个,2k以后的允许1000个)
slot对一个进程来说是个定值, 每当一个线程分配一个slot时候,slot的总数
就会减少1. 上面的nSlot可能是代表你当前所拥有的slot个数. 安照你
早晨运行时正常,而晚上就完蛋的情况分析, 可能是nSlot>m_nMax.
但这种情况很罕见. 除非你写的是个服务器程序,有个辅助线程在不断的
用TlsAlloc()分配 slot,直到你的程序歇菜为至.
ASSERT(nSlot != 0 && nSlot < m_nMax);
代码处断言这个值不许为空,或着小于一个限度.
tls是个很特殊的东西,它和线程相关,每个线程均有一堆的时隙(slot),大小随
系统不同而有异(好像是2k以前的系统允许64个,2k以后的允许1000个)
slot对一个进程来说是个定值, 每当一个线程分配一个slot时候,slot的总数
就会减少1. 上面的nSlot可能是代表你当前所拥有的slot个数. 安照你
早晨运行时正常,而晚上就完蛋的情况分析, 可能是nSlot>m_nMax.
但这种情况很罕见. 除非你写的是个服务器程序,有个辅助线程在不断的
用TlsAlloc()分配 slot,直到你的程序歇菜为至.
#1
如果可以将你的程序代码发给我,我可以为你研究一下。
ROSEMENT@SINA.COM
ROSEMENT@SINA.COM
#2
我是用DELPHI编写.但运行时就出现以上错误.
#3
无论是什么语言----都见鬼了
#4
afxtls.cpp 是个关于Tls(线程本地存储)的代码文件,估计是你代码中
或是编译过程中,采用了tls技术, 你可以仔细查看一下线程处理的相关代码.
或是编译过程中,采用了tls技术, 你可以仔细查看一下线程处理的相关代码.
#5
to fanchka(狼仔):但我的程序并没有用到线程.其中只是创建了一个对象
createoleobject('sms.send');我不知道它里有没有这方面的东东.
createoleobject('sms.send');我不知道它里有没有这方面的东东.
#6
显示的是关于C++调试断言的错误,应该是你传送的变量(对象)有异常值吧!
#7
我看了 :afxtls.cpp Line :254 是个与线程相关的存入tls的公共值.
ASSERT(nSlot != 0 && nSlot < m_nMax);
代码处断言这个值不许为空,或着小于一个限度.
tls是个很特殊的东西,它和线程相关,每个线程均有一堆的时隙(slot),大小随
系统不同而有异(好像是2k以前的系统允许64个,2k以后的允许1000个)
slot对一个进程来说是个定值, 每当一个线程分配一个slot时候,slot的总数
就会减少1. 上面的nSlot可能是代表你当前所拥有的slot个数. 安照你
早晨运行时正常,而晚上就完蛋的情况分析, 可能是nSlot>m_nMax.
但这种情况很罕见. 除非你写的是个服务器程序,有个辅助线程在不断的
用TlsAlloc()分配 slot,直到你的程序歇菜为至.
ASSERT(nSlot != 0 && nSlot < m_nMax);
代码处断言这个值不许为空,或着小于一个限度.
tls是个很特殊的东西,它和线程相关,每个线程均有一堆的时隙(slot),大小随
系统不同而有异(好像是2k以前的系统允许64个,2k以后的允许1000个)
slot对一个进程来说是个定值, 每当一个线程分配一个slot时候,slot的总数
就会减少1. 上面的nSlot可能是代表你当前所拥有的slot个数. 安照你
早晨运行时正常,而晚上就完蛋的情况分析, 可能是nSlot>m_nMax.
但这种情况很罕见. 除非你写的是个服务器程序,有个辅助线程在不断的
用TlsAlloc()分配 slot,直到你的程序歇菜为至.