2016-03-04 39 views
2

我得到「I/O錯誤 「1785」 在我的計劃中什麼是「I/O錯誤1785」?

Vcl.FileCtrl.TDirectoryListBox.SetDirectory -> Vcl.FileCtrl.ProcessPath

我找不到在Delphi的幫助這樣的描述

+3

我猜'ERROR_UNRECOGNIZED_MEDIA 1785(0x6F9)磁盤媒體無法識別。它可能沒有格式化。「可能是。 –

+0

從幫助文件:*除操作系統返回的錯誤代碼報告I/O錯誤和致命錯誤以外的所有錯誤*由於列出的所有I/O錯誤都在100..106範圍內,並且致命的錯誤是在200..232,這是因爲這是一個操作系統錯誤,'SysErrorMessage(1785)'會給你一個錯誤的描述(就像@Joachim所說的那樣)。 –

+0

@KenWhite這應該是一個答案,我只是從代碼結合IO錯誤的猜測:) –

回答

3

從幫助文件:

All errors other than I/O errors and fatal errors are reported with the error codes returned by the operating system.

由於所有列出的I/O錯誤都在100..106範圍內,致命錯誤全部在200..232中,因此這是一個操作系統錯誤,並且SysErrorMessage(1785)會給出錯誤描述:

The disk media is not recognized. It may not be formatted.

實際的錯誤是ERROR_UNRECOGNIZED_MEDIA(感謝@JoachimIsaksson爲尋找它,所以我沒有這樣做)。

+0

男人!他們爲什麼不把它稱爲ERROR_UNRECOGNIZED_MEDIA而不是1785? – Beno

+0

@Beno:因爲錯誤是1785,並且計算機不知道*人類可讀*常量ERROR_UNRECOGNIZED_MEDIA的含義。 :-)事實上,除了函數返回值1785作爲錯誤代碼之外,計算機什麼也不知道;代碼的解釋方式取決於返回的函數。 –

+1

但是當你有訪問衝突時,他們會這麼稱呼它,而不是錯誤31973616.而當你有範圍檢查錯誤時,他們也會這樣調用它,而不是59283782. – Beno