C++ FormatMessage失败,错误代码317
当我执行以下代码段时,它失败了,错误代码为317。如何解决这个问题?我们在项目中使用Unicode字符集C++ FormatMessage失败,错误代码317,c++,visual-c++,windows-ce,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,
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 )
使用Visual Studio中的错误代码查找,317被描述为 系统找不到消息文本 对于消息中的消息编号0x%1 %2的文件 这意味着系统中不存在前一个错误代码的消息描述。来自系统的带有标志的MSDN文档
格式化消息\u
说明:
并非所有基于CE的Windows嵌入式系统
设备将包含该系统
消息表资源。这是一个
窗口的可选部分
嵌入式CE操作系统及其应用
经常被移走以节省空间
使用Visual Studio中的错误代码查找,317被描述为 系统找不到消息文本 对于消息中的消息编号0x%1 %2的文件 这意味着系统中不存在前一个错误代码的消息描述。来自系统的带有标志的MSDN文档
格式化消息\u
说明:
并非所有基于CE的Windows嵌入式系统
设备将包含该系统
消息表资源。这是一个
窗口的可选部分
嵌入式CE操作系统及其应用
经常被移走以节省空间
我认为错误317是使用Win32函数lsantStatusToInError(87)的结果,其中winstatus 87表示“参数不正确”我认为错误317是使用Win32函数lsantStatusToInError(87)的结果,其中winstatus 87表示“参数不正确”函数末尾是否缺少分号?@iammilind:OP可以编译,因此我认为没有。错误代码317是
错误\u MR\u MID\u未找到
。所以我猜dwErrorId
在某种程度上是错误的。数字必须是有效的系统消息。这是一个邪恶的施法,它永远不能正常工作。它只会阻止编译器告诉你你做错了什么。使用FormatMessageA()或传递一个wchar\u t[]。为什么要使用char*然后将其转换为宽(LPTSTR)字符串?这是非常糟糕的形式,不会使目标成为char*。它并没有导致这个特定的错误,但它仍然是一个糟糕的形式。在这里使用它表示您可能在其他地方也在使用它。函数末尾是否缺少分号?@iammilind:OP可以编译,所以我认为没有。错误代码317是Error\u MR\u MID\u NOT\u FOUND
。所以我猜dwErrorId
在某种程度上是错误的。数字必须是有效的系统消息。这是一个邪恶的施法,它永远不能正常工作。它只会阻止编译器告诉你你做错了什么。使用FormatMessageA()或传递一个wchar\u t[]。为什么要使用char*然后将其转换为宽(LPTSTR)字符串?这是非常糟糕的形式,不会使目标成为char*。它并没有导致这个特定的错误,但它仍然是一个糟糕的形式。在这里使用表示您可能也在其他地方使用它。