Noch einen/zwei Tipp(s):
- die
DLL nicht in das Programmverzeichnis entpacken, sondern lieber ins temporäre Verzeichnis von Windows (
GetTempPath).
- statt dem FileStream direkt über die
WinAPI gehn, also WriteFile und
CreateFile.
bei Letzerem gibst du dann noch FILE_ATTRIBUTE_TEMPORARY mit an.
Grund:
Nicht immer hat man Schreibrechte im Programmordner und nicht jeder User mag es, wenn man da rumschreibt, bzw. man nutzt einen schreibgeschützten Datenträger (CD/DVD).
FILE_ATTRIBUTE_TEMPORARY sagt Windows, daß es eine temporäre Datei ist, welche dann automatisch gelöscht wird, sobald alle Handles auf diese Datei geschlossen sind.
Auch wenn dein Programm abstürzt und somit das OnClose nicht mehr ausgeführt würde