yichijingnian 2015-05-05 17:06 采纳率: 50%
浏览 1764

初学者深夜提问,多有打扰,跪求指点。error C2664

一个俄罗斯方块的小程序,报错部分代码如下:
//显示分数信息
char string[5];
wColors[0]=FOREGROUND_RED| FOREGROUND_GREEN|FOREGROUND_INTENSITY;
textout(handle,26+dx,5+dy,wColors,1,_itoa_s(score,string,10));
textout(handle,26+dx,9+dy,wColors,1,_itoa_s(level,string,10));

错误如下:
error C2664: “textout”: 不能将参数 6 从“errno_t”转换为“LPTSTR”
1> 从整型转换为指针类型要求 reinterpret_cast、C 样式转换或函数样式转换

这个程序在机房的vs2012运行正常,到笔记本上同样是vs2012,先是要求我把itoa改_成__itoa又改成_itoa_s,然后就一直报这个错误。

百度了一圈也不知道怎么回事,看到有类似的错误是因为字符集,我用的是多字符集啊。
作为初学者,学得相当不咋地,跪求指点。
第一次提问,如有不妥请见谅,拜谢。

  • 写回答

4条回答

  • 知常曰明 2015-05-05 21:36
    关注

    老的_itoa返回的是字符串,但是新的_itoa_s返回的是错误码,需要的字符串是在参数中返回的,因此你可以分为两句

    textout(handle,26+dx,5+dy,wColors,1,_itoa_s(score,string,10));
    

    改为

    _itoa_s(score,string,10)
    textout(handle,26+dx,5+dy,wColors,1,string);
    

    另外,_itoa_s的第三个参数是缓冲大小。你的string明显只有5个字节,因此这里用10不是很合适。或者这里用5作为长度,或者定义的时候改为char string[10];

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算