Delphi E2010 Incompatible types: ‘Cardinal’ and ‘TSearchRec’

Задача: При компиляции появилась ошибка 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);

Добавить комментарий Отменить ответ