Я обнаружил странную ошибку компилятора в Delphi Prism 2010, которую не могу устранить. Ошибка - вызов метода для объекта, определенного в сторонней сборке, которая манипулирует специализированным форматом изображения. Сама сборка была скомпилирована для среды выполнения .Net 2.0.
Несмотря на предоставление правильного списка параметров, я постоянно получаю сообщение об ошибке, и ряд предупреждающих сообщений указывает, что список параметров неверен. IDE VS 2008 также отказывается выполнять завершение параметра, но корректно показывает прототип метода и позволяет добавлять метод с помощью Ctrl-Space. Ниже приведена сокращенная версия ошибок компилятора для иллюстрации проблемы:
Ошибка 1 (PE19) Нет перегруженного метода "GetTempMapOfIRSensor" с этими параметрами
Предупреждение 2 (PH2) «Лучшее соответствие» Image.GetTempMapOfIRSensor (var rectOnSensor: System.Drawing.Rectangle; вне среднего: System.Double; out minTempArrayIndex: System.Int32; out maxTempArrayIndex: System.Int32; requiredTempUnits: Image.TEMP_UNIT): массив System.Double "не соответствует параметру 1, параметр" System.Drawing.Rectangle "должен быть" System.Drawing.Rectangle "
Предупреждение 3 (PH2) «Лучшее соответствие» Image.GetTempMapOfIRSensor (var rectOnSensor: System.Drawing.Rectangle; вне среднего: System.Double; out minTempArrayIndex: System.Int32; out maxTempArrayIndex: System.Int32; requiredTempUnits: Fluke.Thermography.TEMP_UNIT): массив System.Double "не соответствует параметру 2, параметр" System.Double "должен быть" System.Double "
.... список похожих предупреждений для каждого оставшегося параметра
Странно, что компилятор жалуется на несоответствие типов для каждого параметра, но в сообщении об ошибке указывается, что имена типов параметров совпадают (например, параметр «System.Double» должен иметь значение «System.Double») .
Приветствуются любые предложения по устранению неполадок и решению этой проблемы. Рассматриваемый класс, кроме этого одного метода, кажется, работает хорошо во всех других отношениях. Я также могу создать метод в локальном классе с той же сигнатурой и вызвать его без ошибок.
Обновление:
Вызов метода с использованием отражения и того же списка параметров работает правильно. Это похоже на какую-то ошибку / ограничение компилятора.