CFile::Read()怎么用,MFC中。。。。
virtualUINTRead(void*lpBuf,UINTnCount);这是Read函数的代码,我大体知道这个函数的功能void*lpBuf,是把资源读入哪里UIN...
virtual UINT Read(
void* lpBuf,
UINT nCount
);
这是Read函数的代码,我大体知道这个函数的功能
void* lpBuf,是把资源读入哪里
UINT nCount ,是读入的字节数
但是我不知道这个函数从那开始读。。。。。
就比如我有一个结构体,
怎么吧结构体的指针pstruct与Read函数关联起来。。。
谢谢 展开
void* lpBuf,
UINT nCount
);
这是Read函数的代码,我大体知道这个函数的功能
void* lpBuf,是把资源读入哪里
UINT nCount ,是读入的字节数
但是我不知道这个函数从那开始读。。。。。
就比如我有一个结构体,
怎么吧结构体的指针pstruct与Read函数关联起来。。。
谢谢 展开
5个回答
展开全部
CFile::Open成功打开文件后,使用 GetLength 获取文件的长度,nFileLen;
然后 new 一块内存。char*lpBuf = new char[nFileLen];
再使用 Read( lpBuf, nFileLen);
文件的数据就装入到 lpBuf指向的内存块了。
Read是从当前游标开始读取,默认是文件起始,可以使用 Seek/ SeekToBegin / SeekToEnd 来定位。
“怎么吧结构体的指针pstruct与Read函数关联起来”——你文件中如果存的是某种结构化数据(里面最好别包含指针变量)。可以直接使用 pstruct = (MYSTRUCT*) (lpBuf+x); 来强制转换,x表示偏移位置。
如果你的结构体里面包含指针对象(尤其是字符串成员),那么请使用序列号模式来存放结构数据,MFC提供的 CArchive 类,>> << 2个成员函数就能实现结构化数据的保存装入了,使用比较简单。主要是装入和保存时候要一一匹配别搞错就行。
具体看看MSDN吧,有不少例子。
然后 new 一块内存。char*lpBuf = new char[nFileLen];
再使用 Read( lpBuf, nFileLen);
文件的数据就装入到 lpBuf指向的内存块了。
Read是从当前游标开始读取,默认是文件起始,可以使用 Seek/ SeekToBegin / SeekToEnd 来定位。
“怎么吧结构体的指针pstruct与Read函数关联起来”——你文件中如果存的是某种结构化数据(里面最好别包含指针变量)。可以直接使用 pstruct = (MYSTRUCT*) (lpBuf+x); 来强制转换,x表示偏移位置。
如果你的结构体里面包含指针对象(尤其是字符串成员),那么请使用序列号模式来存放结构数据,MFC提供的 CArchive 类,>> << 2个成员函数就能实现结构化数据的保存装入了,使用比较简单。主要是装入和保存时候要一一匹配别搞错就行。
具体看看MSDN吧,有不少例子。
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
CFile::Open()函数打开文件后,文件内容指针指向文件的第一个字节的位置,CFile::Seek()函数可以修改读取的位置(位置以字节为单位)。
file.Read(pstruct,sizeof(YOUR_STUCT));
file.Read(pstruct,sizeof(YOUR_STUCT));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CFile::Open()函数打开文件后,内容指针指向文件的第一个字节的位置,CFile::Seek()函数可以修改读取的位置。
CFile::Open成功打开文件后,使用 GetLength 获取文件的长度,nFileLen。
可以使用 Seek/ SeekToBegin / SeekToEnd 来定位。
直接使用 pstruct = (MYSTRUCT*) (lpBuf+x); 来强制转换,x表示偏移位置。
使用序列号模式来存放结构数据,MFC提供的 CArchive 类,>> << 2个成员函数就能实现结构化数据的保存装入了。
使用比较简单。主要是装入和保存时候要匹配别搞错就行。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个函数是从文件读的
从文件中读取数据并放到lpBuf中
如果你只是要读内存 直接用memcpy即可
从文件中读取数据并放到lpBuf中
如果你只是要读内存 直接用memcpy即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以采用序列化serialize的方式,直接从读取结构体内容,可以参照msdn里面的例子scrib,里面有详细的讲解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |