Recent versions of Delphi (for a suitable definition of "recent") come with a TZipFile class implemented in the unit System.Zip. This class has the really neat feature that it can not only read the contents of a ZIP file directly from a stream but also extract a file from that stream to a TBytes array, … Continue reading Delphi’s TZipFile working on a stream
Month: August 2020
Filtering and sorting for the GExperts PE Information Exports list
The GExperts PE Information tool just got a small improvement: The Exports list can now be sorted by clicking on the column header and filtered on the export name by simply typing text. The Escape key resets the filter. If you want to discuss this article, you can do so in the corresponding post in … Continue reading Filtering and sorting for the GExperts PE Information Exports list
External Exception $406D1388 in Delphi
Reminder to self: Exception $406D1388 is the exception used to set a name for a thread, like in: [delphi] procedure SetThreadName(const _Name: AnsiString); var ThreadNameInfo: TThreadNameInfo; begin ThreadNameInfo.FType := $1000; ThreadNameInfo.FName := PAnsiChar(_Name); ThreadNameInfo.FThreadID := $FFFFFFFF; ThreadNameInfo.FFlags := 0; try RaiseException($406D1388, 0, SizeOf(ThreadNameInfo) div SizeOf(LongWord), Pointer(@ThreadNameInfo)); except // ignore end; end; [/delphi] If you encounter … Continue reading External Exception $406D1388 in Delphi