//动画信息
struct aniInfo
{
char name[50];//动画名
int fCount; //帧数
float deltaTime;//帧间隔
bool bLoop; //是否循环
char fileName[100];
char describle[50];
};这样一个结构体从文件读写,除了 帧数和帧间隔数据不正确,其他的数据都正确,是什么问题呢, 读写用的MFC的CFile
struct aniInfo
{
char name[50];//动画名
int fCount; //帧数
float deltaTime;//帧间隔
bool bLoop; //是否循环
char fileName[100];
char describle[50];
};这样一个结构体从文件读写,除了 帧数和帧间隔数据不正确,其他的数据都正确,是什么问题呢, 读写用的MFC的CFile
memset((void *)&a,0,sizeof(aniInfo));
ddd=listView->GetItemText(i,0);//获取动画名
memcpy(a.name,ddd.GetBuffer(),ddd.GetLength()); ddd=listView->GetItemText(i,1);//获取帧数
memcpy(&a.fCount,ddd.GetBuffer(),ddd.GetLength()); ddd=listView->GetItemText(i,2);//获取帧间隔
memcpy(&a.deltaTime,ddd.GetBuffer(),ddd.GetLength()); ddd=listView->GetItemText(i,3);//获取是否循环
if (ddd=="是")
{
a.bLoop=true;
}
else
{
a.bLoop=false;
}
ddd=listView->GetItemText(i,4);//获取文件路径
memcpy(a.fileName,ddd.GetBuffer(),ddd.GetLength());
ddd=listView->GetItemText(i,5);//获取描述
memcpy(a.describle,ddd.GetBuffer(),ddd.GetLength());
f.Write(&a,sizeof(aniInfo)); //当前动画信息写入文件;
int fCount; //帧数
float deltaTime;//帧间隔
这2个得到的不正确,如果改成char数组的话得到的就正确了
---------------
你这里不对,fCount是int类型,你的ddd是CString类型的,memcpy肯定不对啊
a.fCount = _ttoi(ddd);
改成这样,下面那个也跟着改