vc基于对话程序

善古 2010-07-08 01:47:30
请大家帮忙,谢谢!

程序运行后出现以下错误提示:

Debug Assertion Failed!
Program: C:\EditState\Debug\EditState.exe
File: 122

For information on how your program can cause an assertion
failure,see the viausal C++ documentation on asserts.
(Press Retry to debug the application)

设断点,运行,发现出错的代码位置是: structState.cstrName = cstrTemp;

structState是一个结构体.里边有CString数组,有包含其它结构体变量.

我把前一段代码注释了,被我注释的代码是:
GetDlgItem(IDC_EDIT_ID)->GetWindowText(cstrTemp);//Id
iTemp = _tcstoul(cstrTemp,0,16);
structState.iId = iTemp;


注释之后,运行能通过(structState.cstrName = cstrTemp;)这条赋值语句了,
但是后面又出错,而且还又是在 CString赋值时出错.不知是什么原因,
谢谢大家帮忙回答.

...全文
110 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
善古 2010-07-08
  • 打赏
  • 举报
回复
如果装中文汉字的话..
char 数组装汉字与CString有没有什么特殊区别呀..
zyrr159487 2010-07-08
  • 打赏
  • 举报
回复
VC6.0的话用STRING或者char吧
善古 2010-07-08
  • 打赏
  • 举报
回复
哦刚才没刷新页面....那我们就改成char试下...
善古 2010-07-08
  • 打赏
  • 举报
回复
现在是程序刚开始运行到11行代码就出这个错了...
不知道大家有没有用过CString作为数据结构体成员的经历..
可不可以用char代替呀...
精锐掷矛手 2010-07-08
  • 打赏
  • 举报
回复
不好定位,或许是内存越界。查查数组赋值、memset、memcpy...
善古 2010-07-08
  • 打赏
  • 举报
回复
请问你是说在数据结构里吗?
[Quote=引用 5 楼 visualeleven 的回复:]
把你的CString用TCHAR[]来代替
[/Quote]
善古 2010-07-08
  • 打赏
  • 举报
回复
嗯.是VC6.0
善古 2010-07-08
  • 打赏
  • 举报
回复
编译没有问题,我每写完一段代码都编译一次的.
Eleven 2010-07-08
  • 打赏
  • 举报
回复
你用的是VC6???
Eleven 2010-07-08
  • 打赏
  • 举报
回复
把你的CString用TCHAR[]来代替
善古 2010-07-08
  • 打赏
  • 举报
回复
iID是int型的..
善古 2010-07-08
  • 打赏
  • 举报
回复
我最后把所有CString类型换成 Char类型了,果然可以运行了.
但是这个问题的问题只好自己找答案了..
善古 2010-07-08
  • 打赏
  • 举报
回复
感谢大家的关注.
谢谢.
wltg2001 2010-07-08
  • 打赏
  • 举报
回复
iTemp = _tcstoul(cstrTemp,0,16);
structState.iId = iTemp;
==========
你这个能过编译吗?iTemp应该是unsigned long型的,而iId从你后面的说明看应该是CString,能直接赋值吗?
善古 2010-07-08
  • 打赏
  • 举报
回复
更新一下...
Debug Assertion Failed!
Program: C:\EditState\Debug\EditState.exe
File: afx.inl
Line: 122
For information on how your program can cause an assertion
failure,see the viausal C++ documentation on asserts.
(Press Retry to debug the application)

结构体是:
//下拉列表的数据(CCOMBoBox)
typedef struct structIdName
{
CString cstrId;
CString cstrName;
}STRUCTIdName;


//移动
typedef struct structMove
{
int iMaxmove;//最大距离
int iMinmove;//最小距离
}STRMove;

//防御
typedef struct structRecovery
{
int iWind;//风
int iWater;//水
int iFire;//火
int iSoil;//土

}STRRecovery;

//恢复
typedef struct structResume
{
int iLiveresume;//生命值
int iMagicresume;//魔法值
}STRResume;


//状态结构
typedef struct structState
{
int iId;//ID
int iAim;//作用对象
int iStanding;//回合时间
int iMaxgrade;//最大等级
int iKind;//所属类别
CString cstrAddons[6];//附加属性
CString cstrName;//名字
CString cstrDesc;//描述
STRMove strmove;//移动属性
STRRecovery strrecovery;//防御属性
STRResume strresume;//恢复属性
}STRUCTState;


deque<STRUCTState>DEQUEState;//全局记录
deque<STRUCTIdName>DEQUEIdName;//下拉列表数据
wltg2001 2010-07-08
  • 打赏
  • 举报
回复
structState是一个结构体.里边有CString数组,有包含其它结构体变量.
==========
你给的信息太少了,不好确实原因
一些VC编程的技巧 Visual C++编程技巧精选(缺57-67) 1. 如何获取应用程序的实例句柄? 2. 如何通过代码获得应用程序主窗口的指针? 3.如何在程序中获得其他程序的图标? 4.如何编程结束应用程序?如何编程控制windows的重新引导? 5.怎样加载其他的应用程序? 6. 确定应用程序的路径 7. 获得各种目录信息 8. 如何自定义消息 9. 如何改变窗口的图标? 10. 如何改变窗口的缺省风格? 11. 如何将窗口居中显示? 12. 如何让窗口和 MDI窗口一启动就最大化和最小化? 13. 如何使程序保持极小状态? 14. 如何限制窗口的大小? 15. 如何使窗口不可见? 16. 如何使窗口始终在最前方? 17、如何创建一个字回绕的CEditView 18、通用控件的显示窗口 19、移动窗口 20、重置窗口的大小 21、如何单击除了窗口标题栏以外的区域使窗口移动 22、如何改变视窗的背景颜色 23、如何改变窗口标题 24、如何防止主框窗口在其说明中显示活动的文档名 25、如何获取有关窗口正在处理的当前消息的信息 26、如何创建一个不规则形状的窗口 27、如何在代码中获取工具条和状态条的指针 28、如何使能和禁止工具条的工具提示 29、如何设置工具条标题 30、如何创建和使用无模式对话框 31、如何在对话框中显示一个位图 32、如何改变对话或窗体视窗的背景颜色 33、如何获取一个对话控件的指针 34、如何禁止和使能控件 35、如何改变控件的字体 36、如何在OLE控件中使用OLE_COLOR数据类型 37、在不使用通用文件打开对话的情况下如何显示一个文件列表 38、为什么旋转按钮控件看起来倒转 39 为什么旋转按钮控件不能自动地更新它下面的编辑控件 40、如何用位图显示下压按钮 41、如何一个创建三态下压按钮 42、如何动态创建控件 43、如何限制编辑框中的准许字符 44、如何改变控件的颜色 45、当向列表框中添加多个项时如何防止闪烁 46、如何向编辑控件中添加文本 47、如何访问预定义的GDI对象 48、如何获取GDI对象的属性信息   49、如何实现一个橡皮区矩形 50、如何更新翻转背景颜色的文本 51、如何创建一个具有特定点大小的字体 52、如何计算一个串的大小 53、如何显示旋转文本 54、如何正确显示包含标签字符的串 55、串太长时如何在其末尾显示一个省略号 56、如何快速地格式化一个CString对象 68. VC1.5下如何跳到第一事例? 69. 为什么VC++2.0中使用文件对话框会死机? 70. 在VC++1.5中如何new一个大数组? 71. 在VC1.5中,如何得到子窗口在主窗口中的相对坐标? 72. VC1.5 如何调用进程? 73. VC++1.5编Win3.1程序能否实现全局跳转? 74. 如何在DLL用自定义窗口? 75. 如何让TOOLTIP的字体变大? 76.怎样更换wallpaper. 77.写打印机Preview需要用什么函数? 78.用MFC写了一个控件,如何在另一个县城里发事件? 79.关于DIADOG背景图象 80.如何显示随光标移动的提示窗口 81.怎么用VC++5.0来编写图像打印程序,我的程序是基于对话框的 82.请问怎样象Winzip一样,给Win95自己的PopMenu中添加Item. 83.问如何在Tree空件上实现点右健选中Item并下拉出菜单,如同VC5中的Workspce窗口. 84.我想在CDialog类中的树控件中响应右键弹起这一消息 85.怎样在程序中启动缺省浏览器,并进入某一网址 86.建立一束特殊效果的黑光在 Direct3D 87.列表显示所有网上邻居 88.怎样在一个应用程序中加载另一个应用程序 89.如何获得当前时间

16,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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