Задача: При компиляции появилась ошибка E2010 Incompatible types: ‘Cardinal’ and ‘TSearchRec’
Инструментарий: Delphi 10S
Решение: При компиляции следующего кода:
var SearchRec: TSearchRec;
....
FindClose(SearchRec); // <= ошибка тут
возникает ошибка:
E2010 Incompatible types: 'Cardinal' and 'TSearchRec'
Ошибка появилась из за того, что существует две версии FindClose, одна находится в System.SysUtils, другая в Winapi.Windows.
Для того чтобы избавится от ошибки нужно к названию функции добавить название модуля с которого берется данная функция. В результате код будет выглядеть следующим образом:
var SearchRec: TSearchRec;
....
System.SysUtils.FindClose(SearchRec);