0

値のリストはどこにありEDOMParseError.ErrorCodeますか?

Delphi ソースまたは MSDN で見つけることができません。

たとえば、XMLDocument.FileName間違った URL に設定すると、

Error code: -2146697210
Reason:  System error: -2146697210

このコードはどこで定義されていますか?

4

2 に答える 2

2

MSXML を の DOM プロバイダとして使用する場合TXMLDocumentEDOMParseError.ErrorCode値は COMHRESULT値です (MSXML は COM オブジェクトとして実装されます)。HRESULTすべての可能な値を文書化した単一の情報源はありません。さまざまなモジュールで独自のカスタムHRESULT値を定義できます。

この場合、-2146697210 (hex 0x800C0006) はINET_E_OBJECT_NOT_FOUND(オブジェクトが見つかりませんでした):

#define INET_E_OBJECT_NOT_FOUND          _HRESULT_TYPEDEF_(0x800C0006L)      

これは、重大度が、ファシリティが、エラー コードが 6のマクロをHRESULT介して定義された に変換されます。MAKE_HRESULT()SEVERITY_ERRORFACILITY_INTERNET

#define INET_E_OBJECT_NOT_FOUND          MAKE_HRESULT(SEVERITY_ERROR, FACILITY_INTERNET, 6)

この特定HESULTの値は、URL モニカー エラー コードに記載されています。機能を持つすべてのHRESULTFACILITY_INTERNETは、UrlMon モジュールを含む WinInet ライブラリに属します。MSXML は、内部的に WinInet を使用してリモート コンテンツをダウンロードします。

于 2016-04-11T19:41:57.800 に答える
0

理由で述べたように、このエラーはシステムに起因します。

SysErrorMessage(ErrorCode)

やりたいことをやればいい。

エラーがシステムから発生した場合にのみ、SysErrorMessage を呼び出します。しかし今、あなたはこれを知る方法を理解する必要があります. このような理由を確認することが可能です

if reason.StartsWith('System Error') then
    errorMessage := SysErrorMessage(errorCode);

でも、このままではダメそうです(Windowsの言語設定にもよるかな…)

于 2016-04-11T15:24:52.210 に答える