Embarcadero® RAD Studio XE8 Version 22.0.19908.869 Update 1
После перевода большого проекта на UniDAC стала возникать ошибка при выходе из программы - Access Violation. Стали от проекта по очереди отцеплять всё что можно.
Дошли до простейшей ситуации, в которой воспроизводится ошибка.
Есть 2 проекта: один - EXE, другой - DLL.
В Exe в uses помещаем UNI.
В DLL в uses помещаем UNI.
В Exe динамически подгружаем DLL (даже не вызываем из неё ничего после этого).
После чего завершаем приложение.
Выходит Access Violation.
Код: Выделить всё
program EXE;
uses Vcl.Forms, Windows, Uni;
{$R *.res}
var DLLHandle: THandle;
begin
Application.Initialize;
DLLHandle:=LoadLibrary(PChar('dll.dll'));
If DLLHandle <> 0 Then FreeLibrary(DLLHandle);
Application.Run;
end.
Код: Выделить всё
library DLL;
uses UNI;
{$R *.res}
Procedure Call_Test; stdcall; export;
Begin
End;
Exports Call_Test;
begin
end.
Также прикладываю захват экрана при работе приложения (2016-04-27_15-03-13.rar)