FormatMessage失败,错误代码为317

时间:2011-06-07 11:22:51

标签: c++ visual-c++ windows-ce

当我执行以下代码时,它失败并显示 错误代码317 。怎么解决这个问题?我们正在为项目使用Unicode字符集

  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 )

2 个答案:

答案 0 :(得分:6)

使用Visual Studio中的错误代码查找tool,将317描述为

  

系统无法找到消息文本   消息中的消息号为0x%1   %2的文件。

这意味着系统中不存在先前错误代码的消息描述。带有标记FORMAT_MESSAGE_FROM_SYSTEM的{​​{3}}的MSDN文档指出:

  

并非所有基于Windows Embedded CE的   设备将包含该系统   消息表资源。这是一个   Windows的可选部分   嵌入式CE操作系统是   经常被移除以节省空间。

答案 1 :(得分:0)

我认为错误317是使用Win32函数LsaNtStatusToWinError(87)的结果,其中winstatus 87表示'参数不正确'