// 运行环境 vc++.net2003
class UserInfo{
public:
char b[10];
string a;
};
void CfileMapTestDlg::OnBnClickedCreate()
{
UserInfo* m_hMapView;
HANDLE m_hMapObject;
m_hMapObject=::CreateFileMapping((HANDLE)-1,NULL,PAGE_READWRITE,0,sizeof(UserInfo),_T("Test"));
if(m_hMapObject==NULL)
{
AfxMessageBox("无法创建文件映射对象");
}
m_hMapView=(UserInfo*)::MapViewOfFile(m_hMapObject,FILE_MAP_WRITE,0,0,0);
if(m_hMapView==NULL)
{
AfxMessageBox("无法创建文件视图");
}
UserInfo m_info;
m_info.a="111";
memcpy(m_hMapView,&m_info,sizeof(UserInfo));
AfxMessageBox("写入成功");
}
void CfileMapTestDlg::OnBnClickedButton2()
{
HANDLE m_hMapObject;
LPVOID m_hMapView;
UserInfo m_info;
m_hMapObject=::OpenFileMapping(FILE_MAP_READ,FALSE,_T("Test"));
if(m_hMapObject==NULL)
{
AfxMessageBox("无法打开文件映射对象");
}
m_hMapView=::MapViewOfFile(m_hMapObject,FILE_MAP_READ,0,0,0);
if(m_hMapView==NULL)
{
AfxMessageBox("无法获取文件视图");
}
memcpy(&m_info,m_hMapView,sizeof(UserInfo));
MessageBox(m_info.a.c_str());
}