按照孙鑫视频第十五课做聊天程序出现了错误

caihuaqi 2011-05-07 04:05:19
Debug Assertion Failed!
Program:
...rs\n\Desktop\aaa\aaa\Debug\MH.exe
File:f:\dd\vctools\crt_bld\self_x86\crt\src\output.c
Line:1120
Expression: ("Incorrect format specifier",0)
For information on how your program can cause an assertion failure, see the Visual C++ Documentation om asserts.
(Press Retry to debug the application)
用的是win7 vs2010
...全文
195 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我找到原因了。 就是 _vsnprintf( buff, sizeof buff, lpFmt, arglist );出的问题。 wsprintf( lpszBuff, "%d", szString);//崩溃,这应该是其中之一的原因。
  • 打赏
  • 举报
回复
我的程序也出了同样的问题。在碰撞的时候发生的。 两种可能的原因: 据我现在调试出的结果,_output_s_l和_output_s函数,应该是由printf这样类似的函数调用的,它们共同点是缺省参数。printf( const char *pfmt, ... )。wsprintf, CString::Format, sprintf,这些函数都缺省参数。 另一种原因可能是你自己定义了这种函数,比如我的一个函数:
void AddLog( char *lpFmt, ...)
{
	char buff[2048];//如果buff空间不足,会出现这种错误。
	va_list arglist;
	va_start( arglist, lpFmt );
	_vsnprintf( buff, sizeof buff, lpFmt, arglist );
	va_end( arglist );

	save( buff );
}

我在N线程里频繁调用这个函数,就会崩溃。有时运行一上午也没事。有时候一下就崩溃了。 我也在求大神指教呀。
yanheifeng715000 2011-05-08
  • 打赏
  • 举报
回复
我之前学习的时候试过编译,程序除了字符处理(Unicode)那部分外是完全没有问题的,所以很大的可能是你选择建立项目时选错了,建议你重新建立一个工程(MFC的),把代码复制过去应该就没事
caihuaqi 2011-05-07
  • 打赏
  • 举报
回复
> msvcr100d.dll!_output_s_l(_iobuf * stream, const char * format, localeinfo_struct * plocinfo, char * argptr) 行 1120 + 0x4f 字节 C++
Eleven 2011-05-07
  • 打赏
  • 举报
回复
Debug下call stack看看函数调用堆栈,找到出错的函数调用先

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧