Mercurial > hg > xemacs-beta
diff src/unexnt.c @ 400:a86b2b5e0111 r21-2-30
Import from CVS: tag r21-2-30
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:14:34 +0200 |
parents | 74fd4e045ea6 |
children | 501cfd01ee6d |
line wrap: on
line diff
--- a/src/unexnt.c Mon Aug 13 11:13:33 2007 +0200 +++ b/src/unexnt.c Mon Aug 13 11:14:34 2007 +0200 @@ -63,9 +63,10 @@ /* From IMAGEHLP.H which is not installed by default by MSVC < 5 */ /* The IMAGEHLP.DLL library is not distributed by default with Windows95 */ -PIMAGE_NT_HEADERS -(__stdcall * pfnCheckSumMappedFile) (LPVOID BaseAddress, DWORD FileLength, - LPDWORD HeaderSum, LPDWORD CheckSum); +typedef PIMAGE_NT_HEADERS +(__stdcall * pfnCheckSumMappedFile_t) (LPVOID BaseAddress, DWORD FileLength, + LPDWORD HeaderSum, LPDWORD CheckSum); + #if 0 extern BOOL ctrl_c_handler (unsigned long type); @@ -190,7 +191,7 @@ char out_filename[MAX_PATH], in_filename[MAX_PATH]; unsigned long size; char *ptr; - HANDLE hImagehelp; + HINSTANCE hImagehelp; /* Make sure that the input and output filenames have the ".exe" extension...patch them up if they don't. */ @@ -245,21 +246,29 @@ { PIMAGE_DOS_HEADER dos_header; PIMAGE_NT_HEADERS nt_header; + DWORD headersum; DWORD checksum; + pfnCheckSumMappedFile_t pfnCheckSumMappedFile; dos_header = (PIMAGE_DOS_HEADER) out_file.file_base; nt_header = (PIMAGE_NT_HEADERS) ((char *) dos_header + dos_header->e_lfanew); nt_header->OptionalHeader.CheckSum = 0; -// nt_header->FileHeader.TimeDateStamp = time (NULL); -// dos_header->e_cp = size / 512; -// nt_header->OptionalHeader.SizeOfImage = size; +#if 0 + nt_header->FileHeader.TimeDateStamp = time (NULL); + dos_header->e_cp = size / 512; + nt_header->OptionalHeader.SizeOfImage = size; +#endif - pfnCheckSumMappedFile = (void *) GetProcAddress (hImagehelp, "CheckSumMappedFile"); + pfnCheckSumMappedFile = + (pfnCheckSumMappedFile_t) GetProcAddress (hImagehelp, + "CheckSumMappedFile"); if (pfnCheckSumMappedFile) { -// nt_header->FileHeader.TimeDateStamp = time (NULL); +#if 0 + nt_header->FileHeader.TimeDateStamp = time (NULL); +#endif pfnCheckSumMappedFile (out_file.file_base, out_file.size, &headersum, @@ -295,14 +304,14 @@ return FALSE; file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size); - if (file_base == 0) + if (file_base == NULL) return FALSE; p_file->name = filename; p_file->size = size; p_file->file = file; p_file->file_mapping = file_mapping; - p_file->file_base = file_base; + p_file->file_base = (char*) file_base; return TRUE; } @@ -486,7 +495,7 @@ DUMP_MSG (("Dumping data section...\n")); DUMP_MSG (("\t0x%08x Address in process.\n", data_va)); DUMP_MSG (("\t0x%08x Offset in output file.\n", - data_file - p_outfile->file_base)); + (char*)data_file - p_outfile->file_base)); DUMP_MSG (("\t0x%08x Size in bytes.\n", size)); memcpy (data_file, data_va, size);