问题的引出
------------------------
本人是大四的学生,由于毕业设计做"循环冗余校验CRC在文件保护中的研
究",现在我的CRC校验已经实现了.
我要把CRC值写入PE的可选映像头(IMAGE_OPTIONAL_HEADER)里面的一个保留字段:Win32Version.
我写的源程序(部分)
-------------------------
//------这是参考了<PE文件格式详解(上)>这篇文章写的
HANDLE hMapping;
void *basepointer;
hMapping = CreateFileMapping(hFile, 0, PAGE_READONLY | SEC_COMMIT, 0, 0, 0);
basepointer = MapViewOfFile(hMapping, FILE_MAP_READ, 0, 0, 0);
CloseHandle(hMapping);
CloseHandle(hFile);
IMAGE_DOS_HEADER * dos_head;
dos_head =(IMAGE_DOS_HEADER *)basepointer;
#define SIZE_OF_NT_SIGNATURE 0x20;
#define OPTHDROFFSET(a) ((LPVOID)((BYTE *)a + \
((PIMAGE_DOS_HEADER)a)->e_lfanew + \
SIZE_OF_NT_SIGNATURE + \
sizeof(IMAGE_FILE_HEADER)))
PIMAGE_OPTIONAL_HEADER poh;
poh = (PIMAGE_OPTIONAL_HEADER)OPTHDROFFSET(dos_head);
//--------------------以下是为了显示Win32VersionValue到对话框的一个编辑框
DWORD wv;
wv=poh->AddressOfEntryPoint;
CString m_Win32Version;
m_Win32Version=wv;
m_FileCrcValue.MakeUpper();
CEdit * winver=(CEdit*)GetDlgItem(IDC_EDIT_Win32Version);
winver->SetWindowTextA(m_Win32Version);
UpdateData(FALSE);
//end
出错信息
----------------------------------------
在
这行有四个错;
error C2143: syntax error : missing ')' before ';'
error C2143: syntax error : missing ')' before ';'
error C2059: syntax error : ')'
error C2059: syntax error : ')'
-------------------------------------
请各位高手帮忙!!谢谢了.
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!