(В дополнение к правильному ответу Мэйсона).
Я запустил программу просмотра / редактирования PE и могу подтвердить, что экспортов нет.Итак, теперь возникает вопрос: почему в приложении без потоков выделен TLS, и что мне с этим делать?Удаление его из таблицы PE работает хорошо, за исключением ошибки приложения при завершении работы.
System.pas содержит 2 потока, InOutRes (для ошибок ввода-вывода) и RaiseListPtr.Мне не нужно * , чтобы эти два были потоковыми переменными в моем приложении, но они кажутся довольно запрограммированными в system.pas.Выглядит как крепкий орешек.
В качестве обходного пути я теперь преждевременно прекращаю свой собственный процесс, используя
TerminateProcess( GetCurrentProcess, 0 )
, чтобы предотвратить любые ошибки во время правильного выключения (глубоко внутри более элегантного ExitProcess из _Halt0 Delphi)).На этапе пост-сборки я удаляю TLS из PE и упаковываю с помощью kkrunchy.До 8192 байт и без проблем.Теперь.Кодекс этично, я чувствую, что я должен быть за решеткой.:)