游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1844|回复: 2

MFC读文件问题

[复制链接]

125

主题

364

帖子

396

积分

中级会员

Rank: 3Rank: 3

积分
396
QQ
发表于 2008-6-16 16:16:00 | 显示全部楼层 |阅读模式

  1. struct MapFormat
  2. {
  3.         //std::string fileFlag;            // 文件标记
  4.         TCHAR szFileFlag[24];        // 文件格式头
  5.         int tileWidth;
  6.         int tileHeight;
  7.         int MapHorzNum;              // 水平数
  8.         int MapVertNum;              // 垂直数
  9.         int totalWidth;              // 总宽
  10.         int totalHeight;             // 总高

  11. }; // end class
复制代码

我自定义一个结构体,保存为一个二进制文件。
然后再在通用对话框打开,但是为什么这个结构体的第一个成员用std::string类型时,我读入数据到一个结构
体, 当最后程序退出时就显示了一个ASSERT的异常对话框。 而使用TCHAR szFileFlag[24]; 一个确定长度
的字符数组再读入数据时就没有任何问题。

同样第一个成员是CString类型时也会出现ASSERT异常对话框。

我怀疑是string或CString预先没分配足够空间导致的,所以最后释放时没能正确的释放。
不知道对不对,希望有朋友指点,非常感谢。

60

主题

1319

帖子

1319

积分

金牌会员

Rank: 6Rank: 6

积分
1319
发表于 2008-6-17 09:27:00 | 显示全部楼层

Re:MFC读文件问题

直接用std::string和CString肯定不行,其它带有指针类型成员的类也不行,它的成员的成员中有指针类型的也不行。
因为直接把结构体写文件里,CString的对象只是本身被写到文件里了,但它运行时分配的字符串并没被写到文件里。
好像说的??铝耍?涫稻褪且?苯有次募?慕峁固宀荒馨??杀浯笮〉某稍薄

13

主题

415

帖子

507

积分

高级会员

Rank: 4

积分
507
发表于 2008-6-17 17:06:00 | 显示全部楼层

Re:MFC读文件问题

都二进制文件了还咋定长。。基础补补吧
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-22 06:28

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表