2011-06-07 159 views
0

當我執行下面的代碼塊時,它會失敗,並顯示錯誤代碼317。如何解決這個問題?我們使用Unicode字符集爲項目FormatMessage失敗,錯誤代碼317

char* pszMessgeBuffer = NULL; 
    FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | 
     FORMAT_MESSAGE_FROM_SYSTEM | 
     FORMAT_MESSAGE_IGNORE_INSERTS, 
     NULL, 
     dwErrorId, 
     0, // Default language 
     (LPTSTR) &pszMessgeBuffer, 
     0, 
     NULL) 
+0

是分號的功能結束缺失的結果呢? – iammilind 2011-06-07 11:34:08

+0

@iammilind:OP能夠編譯,所以我認爲不。 – ybungalobill 2011-06-07 11:35:37

+2

錯誤代碼317是'ERROR_MR_MID_NOT_FOUND'。所以我猜想'dwErrorId'是某種錯誤。該號碼必須是有效的系統消息。 – mkaes 2011-06-07 11:40:56

回答

5

從Visual Studio中的錯誤代碼查找tool,317被描述爲

系統無法找到消息文本 消息號爲0x%1 %2的消息 文件。

這意味着系統中不存在以前錯誤代碼的消息描述。爲FormatMessage與標誌FORMAT_MESSAGE_FROM_SYSTEM的MSDN文檔指出:

並非所有的Windows Embedded基於CE的設備 將包含系統 消息表資源。這是一個 可選部分的Windows 嵌入式CE操作系統,並經常被刪除以節省空間。

0

我認爲錯誤317使用Win32函數LsaNtStatusToWinError(87),其中winstatus 87層的意思是「參數不正確」

相關問題