Groups | Search | Server Info | Login | Register
Groups > de.comp.lang.delphi.misc > #19156
| Path | csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail |
|---|---|
| From | Jens Kallup <kallup.jens@web.de> |
| Newsgroups | de.comp.lang.delphi.misc |
| Subject | check Summe ermitteln klappt nicht |
| Date | Mon, 27 Dec 2021 14:05:09 +0100 |
| Organization | kallup.net - non-profit |
| Lines | 86 |
| Message-ID | <j2ts05Fokj7U1@mid.individual.net> (permalink) |
| Mime-Version | 1.0 |
| Content-Type | multipart/mixed; boundary="------------0RdVTZ7eYLHeTufhJGlweeFf" |
| X-Trace | individual.net 2dOp8mXXjooJekjxwbyMhgWBfR3mD5pRKmSPWSwQo4jDhCoKlo |
| Cancel-Lock | sha1:ULxLhA/KykvkuvX9DlwoUFec5ks= |
| User-Agent | Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.1 |
| Xref | csiph.com de.comp.lang.delphi.misc:19156 |
Show key headers only | View raw
[Multipart message — attachments visible in raw view] - view raw
Hallo,
leider stürtzt das Programm in der unten aufgeführten Funktion
immer ab - bei @checksum in der ShowMessage.
Dort möchte ich gerne eine CheckSum anzeigen.
Danke für Tipps.
Jens
function ComputePEChecksum(FileName: string): DWORD;
var
h, hMap: Cardinal;
pMem: Pointer;
headersum, fsizehigh, fileSizeLow: DWORD;
checksum: PDWORD;
nth: PImageNtHeaders;
p: Pointer;
s: String;
Label
cleanup;
begin
pMem := nil;
Result := 0;
headersum := 0;
checksum := nil;
h := Windows.CreateFile(PChar(FileName), GENERIC_READ, FILE_SHARE_READ,
nil, OPEN_EXISTING, 0, 0);
if (h = INVALID_HANDLE_VALUE) then
begin
ShowMessage('internal error.');
Windows.ExitProcess(1);
end;
fileSizeLow := Windows.GetFileSize(h, @fsizehigh);
hMap := Windows.CreateFileMapping(h, nil, PAGE_READONLY, fsizeHigh,
fileSizeLow, nil);
if (hMap = 0) then
goto cleanup;
pMem := Windows.MapViewOfFile(hMap, FILE_MAP_READ, 0, 0, 0);
if (pMem = nil) then
goto cleanup;
nth := CheckSumMappedFile(pMem, fileSizeLow, @headersum, @checksum);
if (nth = nil) then
checksum := nil;
showmessage(
'size res: ' + IntToStr(fileSizeLow) + #13 +
'size arg: ' + IntToStr(fsizeHigh ) + #13#13 +
'checksum: ' + PChar(checksum^));
cleanup:
if (pMem <> nil) then
Windows.UnmapViewOfFile(pMem);
if (hMap <> 0) then
Windows.CloseHandle(hMap);
if (h <> 0) then
Windows.CloseHandle(h);
Result := checksum^;
end;
Back to de.comp.lang.delphi.misc | Previous | Next — Next in thread | Find similar
check Summe ermitteln klappt nicht Jens Kallup <kallup.jens@web.de> - 2021-12-27 14:05 +0100
Re: check Summe ermitteln klappt nicht Andreas Niggemann <andy-nospam@smss.de> - 2021-12-28 09:31 +0100
Re: check Summe ermitteln klappt nicht Holger Schieferdecker <spamless@gmx.de> - 2022-01-10 11:13 +0100
Stilfrage Aufräumarbeiten (was: check Summe ermitteln klappt nicht) Holger Schieferdecker <spamless@gmx.de> - 2022-01-10 11:03 +0100
Re: Stilfrage Aufräumarbeiten (was: check Summe ermitteln klappt nicht) Jens Kallup <kallup.jens@web.de> - 2022-01-10 13:22 +0100
Re: Stilfrage Aufräumarbeiten Holger Schieferdecker <spamless@gmx.de> - 2022-01-10 13:40 +0100
Re: Stilfrage Aufräumarbeiten Jens Kallup <kallup.jens@web.de> - 2022-01-10 14:30 +0100
csiph-web