#include
#include
#include
#include
#pragma comment(lib,"imagehlp")
//extern"C" PIMAGE_NT_HEADERS CheckSumMappedFile( PVOIDBaseAddress, DWORD FileLength, PDWORD HeaderSum, PDWORDCheckSum );
using
namespace
std;
int main()
{
char
buf[
300];
ZeroMemory(buf,
300);
gets(buf);
//输入文件名
printf(
"name:%s
\n
",buf);
HANDLE
hFile
=
CreateFile(buf,
GENERIC_READ
|
GENERIC_WRITE,
FILE_SHARE_READ,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
//打开文件
if(hFile
==
INVALID_HANDLE_VALUE)
{
printf(
"Open File Failed!
\n
");
return
0;
}
HANDLE
hFileMapping
=
CreateFileMapping(hFile,
NULL,
PAGE_READWRITE,
0,
0,
0);
//创建文件的内存映射
if(hFileMapping
==
NULL)
{
printf(
"Create Mapping FileFailed!
\n
");
CloseHandle(hFile);
return
0;
}
LPVOID
lpBase
=
MapViewOfFile(hFileMapping,
FILE_MAP_READ
|
FILE_MAP_WRITE,
0,
0,
0);
//得到文件映射的初地址
if(lpBase
==
NULL)
{
printf(
"Failed to Map theFile!
\n
");
CloseHandle(hFileMapping);
CloseHandle(hFile);
}
DWORD
HeaderSum,CheckSum;
int
len=
114688;
//文件的长度,
此处写死,不同的程序需要修改。
//HeaderSum=*(DWORD)
CheckSumMappedFile(lpBase,
len,
&HeaderSum,
&CheckSum);//调用函数计算校验和
cout<<HeaderSum<<
" "<<CheckSum<<endl;
getchar();
getchar();
return
0;
}
#include
#include
#include
#pragma comment(lib,"imagehlp")
//extern"C" PIMAGE_NT_HEADERS CheckSumMappedFile(
using
int
{
}