//定义一个文件结构体
typedef struct _FileHeader{
BYTE btTag[4];
BYTE btVersion;
BYTE btFormat;
DWORD dwCIDRange_Start;
DWORD dwCIDRange_End;
DWORD dwDataSize;
DWORD dwDataOffset;
DWORD dwRecordsize;
}FILEHEADER;
//定义文件头结构体变量初始化
FILEHEADER fh;
//----------------------
fh.btTag[0]='F';
fh.btTag[1]='X';
fh.btTag[2]='M';
fh.btTag[3]='P';
fh.btVersion='1';
fh.btFormat='0';
fh.dwCIDRange_Start=0;
fh.dwCIDRange_End=29063;
fh.dwDataSize=29063*4;
fh.dwDataOffset=0;
fh.dwRecordsize=32;
//将文件头对象复制到内存块中
LPBYTE pt;
memcpy(&fh,pt,sizeof(FILEHEADER)); 调试的时候内存老出错,什么地方出问题了?问题问后不少高手给我了提示!非常感谢!
现在我修改了一下
//定义一个文件结构体
typedef struct _FileHeader{
BYTE btTag[4];
BYTE btVersion;
BYTE btFormat;
DWORD dwCIDRange_Start;
DWORD dwCIDRange_End;
DWORD dwDataSize;
DWORD dwDataOffset;
DWORD dwRecordsize;
}FILEHEADER;
//定义文件头结构体变量初始化
FILEHEADER fh;
//----------------------
fh.btTag[0]='F';
fh.btTag[1]='X';
fh.btTag[2]='M';
fh.btTag[3]='P';
fh.btVersion='1';
fh.btFormat='0';
fh.dwCIDRange_Start=0;
fh.dwCIDRange_End=29063;
fh.dwDataSize=29063*4;
fh.dwDataOffset=0;
fh.dwRecordsize=32;
//将文件头对象复制到内存块中
LPBYTE pt = new BYTE[sizeof(FILEHEADER)];
memcpy(&pt, &fh, sizeof(FILEHEADER)); 没有错误提示了,请问我这样的做法合理么?
typedef struct _FileHeader{
BYTE btTag[4];
BYTE btVersion;
BYTE btFormat;
DWORD dwCIDRange_Start;
DWORD dwCIDRange_End;
DWORD dwDataSize;
DWORD dwDataOffset;
DWORD dwRecordsize;
}FILEHEADER;
//定义文件头结构体变量初始化
FILEHEADER fh;
//----------------------
fh.btTag[0]='F';
fh.btTag[1]='X';
fh.btTag[2]='M';
fh.btTag[3]='P';
fh.btVersion='1';
fh.btFormat='0';
fh.dwCIDRange_Start=0;
fh.dwCIDRange_End=29063;
fh.dwDataSize=29063*4;
fh.dwDataOffset=0;
fh.dwRecordsize=32;
//将文件头对象复制到内存块中
LPBYTE pt;
memcpy(&fh,pt,sizeof(FILEHEADER)); 调试的时候内存老出错,什么地方出问题了?问题问后不少高手给我了提示!非常感谢!
现在我修改了一下
//定义一个文件结构体
typedef struct _FileHeader{
BYTE btTag[4];
BYTE btVersion;
BYTE btFormat;
DWORD dwCIDRange_Start;
DWORD dwCIDRange_End;
DWORD dwDataSize;
DWORD dwDataOffset;
DWORD dwRecordsize;
}FILEHEADER;
//定义文件头结构体变量初始化
FILEHEADER fh;
//----------------------
fh.btTag[0]='F';
fh.btTag[1]='X';
fh.btTag[2]='M';
fh.btTag[3]='P';
fh.btVersion='1';
fh.btFormat='0';
fh.dwCIDRange_Start=0;
fh.dwCIDRange_End=29063;
fh.dwDataSize=29063*4;
fh.dwDataOffset=0;
fh.dwRecordsize=32;
//将文件头对象复制到内存块中
LPBYTE pt = new BYTE[sizeof(FILEHEADER)];
memcpy(&pt, &fh, sizeof(FILEHEADER)); 没有错误提示了,请问我这样的做法合理么?
解决方案 »
- CComboBox的列表中我放置了许多项,但它会自动排序,如何能够不要系统进行排序?(详见内容)
- ●●●●●●●●●●●● - 意外地调用了方法或属性访问
- 为什么我这个小程序总是读不到“回车”呢?请大家帮我看看,谢谢大家了。
- 急需大家帮忙的问题!谢谢!!
- 子窗体的刷新问题
- 如何在聊天室踢人和防止被踢
- CFileDialog的问题,急!
- ######如 何 控 制 浏 览 器 中 的 文 本 内 容 不 被 选 中######
- VB调用C++的dll,VB中一个变量的地址和数组的地址重叠了
- 急!!!如何保存文件?送50分
- 请问word自选图形在剪贴板中是什么格式,如何通过剪贴板获取这些自选图形啊
- 菜鸟求助:怎么才能判断控件内容改变,
是从src拷贝到dest,而不是你的第一种情况
应该是:memcpy(pt, &fh, sizeof(FILEHEADER));
pt本来就是一个指针了
{
//创建一个数据文件"CIDTOUNICODE",如果没有则创建,如果有则清空
CFile f=NULL;
CFileException e;
char* pFileName = "CIDTOUNICODE";
if( !f.Open( pFileName, CFile::modeCreate | CFile::modeWrite, &e ) )
{
#ifdef _DEBUG
afxDump << "File could not be opened " << e.m_cause << "\n";
#endif
}
//定义一个文件头结构体
typedef struct _FileHeader{
BYTE btTag[4];
BYTE btVersion;
BYTE btFormat;
DWORD dwCIDRange_Start;
DWORD dwCIDRange_End;
DWORD dwDataSize;
DWORD dwDataOffset;
DWORD dwRecordsize;
}FILEHEADER;
//定义文件头结构体变量并初始化
FILEHEADER fh; fh.btTag[0]='F';
fh.btTag[1]='X';
fh.btTag[2]='M';
fh.btTag[3]='P';
fh.btVersion='1';
fh.btFormat='0';
fh.dwCIDRange_Start=0x0000;
fh.dwCIDRange_End=0x7187;
fh.dwDataSize=0x7187;
fh.dwDataOffset=0x0000;
fh.dwRecordsize=0x0004;
//将文件头结构体变量的内容复制到内存块中
BYTE* pt = new BYTE[sizeof(FILEHEADER)];
memcpy(pt, &fh, sizeof(FILEHEADER));
//将内存块中的内容输出到文件中
f.Write(&pt,sizeof(FILEHEADER));
//关闭打开的文件
if (f!= NULL)
{
f.Close();
MessageBox("Creat Map File Success!");
}
//释放内存中的无用空间}
我创建出来文件开头应该是 "FXMP"可是结果输出文件的文件头怎么是 "E7 FXMP10烫 噏 噏"
怎么释放?
下面这样好象不可以
delete pt;
而是:f.Write(pt,sizeof(FILEHEADER));2、delete []pt;