下面是一些代碼,它接受一個int錯誤代碼(scode)並嘗試查看它是否適合某種模式。我是否應該使用模分部門操作員來做這件事?如何更有效地執行此int模式檢查?
const int MASK_SYNTAX_ERR = -2146827000;
if ((MASK_SYNTAX_ERR % scode) == MASK_SYNTAX_ERR)
scriptError.GetSourceLineText(out sourceLine);
背景:我不得不通過觀察推斷出MASK_SYNTAX_ERR的值。下面是我觀察到的各種語法錯誤代碼:
// -Int Value (Formatted Value "0x{0:X8}")
-2146827281 (0x800A03EF)
-2146827279 (0x800A03F1)
-2146827280 (0x800A03F0)
-2146827283 (0x800A03ED)
-2146827284 (0x800A03EC)
這裏有幾個的邏輯錯誤代碼作比較:
-2146823281 (0x800A138F)
-2146823279 (0x800A1391)
(花絮:本身調用IActiveScriptError.GetSourceLineText的代碼,這是從一個IActiveScriptSite.OnScriptError實現。)
這裏的COM錯誤代碼是如何構造的解釋 - http://msdn.microsoft.com/en-us/library/bb401631.aspx。 – 2012-01-27 02:18:22
啊,謝謝阿列克謝。這可能是最有用的知識。 – 2012-01-27 02:36:43