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吧,有不少例子。
上海楠贝
2024-10-31 广告
2024-10-31 广告
TfS(Together for Sustainability )是一个由化工行业的主要公司发起的联合倡议,旨在提高化工供应链的环境、社会和治理绩效。TfS的成员公司包括巴斯夫,拜耳,赢创工业,汉高,朗盛和苏威等。TfS的执行方法包括对供应...
点击进入详情页
本回答由上海楠贝提供
展开全部
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,里面有详细的讲解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询