2

我在Delphi Prism 2010中遇到了一個奇怪的編譯器錯誤,我無法解決。該錯誤是調用第三方程序集中定義的對象的方法,該對象操縱特定的圖像格式。程序集本身是針對.Net 2.0 Runtime編譯的。爲什麼Delphi Prism抱怨系統類型不匹配?

儘管提供的參數正確的名單,我一直得到一個錯誤,並表示系列的參數列表是不正確的警告消息。 VS 2008 IDE也拒絕執行參數完成,但正確顯示方法原型並允許使用Ctrl-Space添加方法。下面是編譯器的錯誤的簡化版本來說明問題:

錯誤1(PE19)沒有重載方法「GetTempMapOfIRSensor」與這些參數

警告2(PH2)最佳匹配「圖像.GetTempMapOfIRSensor(VAR rectOnSensor:System.Drawing.Rectangle;出平均:System.Double;出minTempArrayIndex:System.Int32;出maxTempArrayIndex:System.Int32; desiredTempUnits: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; desiredTempUnits:Fluke.Thermography.TEMP_UNIT):System.Double數組「不匹配參數2,參數是」System.Double「應該是」System.Double「

....類似列表每個剩餘參數的警告

奇怪的部分是編譯器抱怨每個參數都有一個類型不匹配,但錯誤消息顯示參數類型名稱是相同的(例如參數是「System.Double」應該是「System.Double」)

任何有關如何排除故障和解決此問題的建議都是值得歡迎的。除了這一個方法外,有問題的類似乎在每個o尊重。我也可以在具有相同簽名的本地類上創建一個方法,並且無錯誤地調用它。

更新:

使用反射和相同的參數列表調用方法正常工作。這看起來是某種編譯器錯誤/限制。

回答

1

如果此庫有超負荷的非var/out & var或out參數,並且其餘簽名相同,請關閉隱式out/var參數的選項,並在它們所在的位置添加& var需要。這應該修復,否則QC條目通常會很快修復,如果它是一個錯誤。

相關問題