VS2019:如何解决资源视图中的"unknown sub-lang: 0x8"消息?
VS2019: How to resolve the "unknown sub-lang: 0x8" message in Resource View?
我最近开始为我的 C++11 项目使用 Visual Studio 2019。 VS2019 转换了项目并将其编译为可执行文件。但是我无法在资源查看器中打开我的资源 (.rc) 文件。它给了我这个警告:
A resource in this file uses an unknown language: Neutral (Default)
(unknown sub-lang: 0x8). Unable to open this file.
我尝试将资源文件修整到最低限度,但这没有用。
奇怪的是它也发生在微软的示例项目 Scribble 上。我使用先决条件 header.
下的 [Scribble 1.0 MFC 示例] link 从 https://docs.microsoft.com/en-us/cpp/mfc/walkthrough-updating-the-mfc-scribble-application-part-1?view=vs-2019 下载了它
解决方案在VS2019中打开时,转换,编译,但是无法打开附带的资源文件看Dialogs
感谢任何帮助!
此致,
根
为遇到类似问题的人发布我的解决方案。
我发现发生故障的 rc 文件使用 ANSI 编码。将它们转换为 UTF-8 就可以了。您可以通过 [Encoding] 菜单选项使用 Notepad++ 轻松做到这一点,select [Convert to UTF-8].
我不明白的是为什么VS在转换项目时不自己修复这个问题。
这个解决方案对我有帮助:
https://developercommunity.visualstudio.com/comments/96766/view.html
如果您的 Windows 中有多种语言设置,请删除除一种语言之外的所有设置。我不得不离开英语(美国)选项。然后资源再次打开没有问题。
希望这对某人(或将来对我自己有帮助,因为这是我第二次花一个小时来寻找解决方案)。
问题与语言设置无关,而是RC文件存储不正确。我的文件是 ANSI 格式。当我用 Windows 记事本打开文件并将其保存为 Unicode 后,我就能够再次在工作室中打开和编辑资源项目。 (缺少 0xFF 0xFE)
对我有帮助的是替换这个:
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
(指定语言英语,美国使用 ANSI 拉丁语 1;西欧 (Windows) 编码)
通过这个:
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#pragma code_page(65001)
(指定使用 UTF-8 编码的中性语言)
一旦我进行了更改(确保 .rc 文件是 UTF-8 编码的),Visual Studio 就不再抱怨了。
见https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers
和 https://docs.microsoft.com/en-us/windows/win32/api/winnt/nf-winnt-makelangid#remarks
我找到了适合我的解决方案。
- 在Visual Studio中打开'Code View'中的*.rc文件。
- 搜索以下部分:
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUSD)
LANGUAGE LANG_NEUTRAL, SUBLANG_SYS_DEFAULT
#pragma code_page(1252)
...
注释完整的 #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUSD)
块并保存文件。
打开 'Resource View' 中的文件。关闭它。 (也许你必须在这里更改和保存一些东西)
通过 Visual Studio 中的 'Code View' 重新打开 *.rc 文件。取消注释之前注释的部分并保存文件。
经过这几步,问题就解决了。我不知道哪个步骤解决了问题,但最终这是我解决问题的方法。
我的解决方案受到以下解决方案的启发:https://www.codeproject.com/Questions/40860/Resource-file-opening-problem
在我的情况下,更改语言实际上并不重要,我只是将其转换为 UNICODE(在 Microsoft 记事本中 - 我假设这是 UTF-16)- 它成功了。
请注意这里有一个答案,,它对我不起作用。
我最近开始为我的 C++11 项目使用 Visual Studio 2019。 VS2019 转换了项目并将其编译为可执行文件。但是我无法在资源查看器中打开我的资源 (.rc) 文件。它给了我这个警告:
A resource in this file uses an unknown language: Neutral (Default) (unknown sub-lang: 0x8). Unable to open this file.
我尝试将资源文件修整到最低限度,但这没有用。
奇怪的是它也发生在微软的示例项目 Scribble 上。我使用先决条件 header.
下的 [Scribble 1.0 MFC 示例] link 从 https://docs.microsoft.com/en-us/cpp/mfc/walkthrough-updating-the-mfc-scribble-application-part-1?view=vs-2019 下载了它解决方案在VS2019中打开时,转换,编译,但是无法打开附带的资源文件看Dialogs
感谢任何帮助!
此致, 根
为遇到类似问题的人发布我的解决方案。
我发现发生故障的 rc 文件使用 ANSI 编码。将它们转换为 UTF-8 就可以了。您可以通过 [Encoding] 菜单选项使用 Notepad++ 轻松做到这一点,select [Convert to UTF-8].
我不明白的是为什么VS在转换项目时不自己修复这个问题。
这个解决方案对我有帮助: https://developercommunity.visualstudio.com/comments/96766/view.html
如果您的 Windows 中有多种语言设置,请删除除一种语言之外的所有设置。我不得不离开英语(美国)选项。然后资源再次打开没有问题。 希望这对某人(或将来对我自己有帮助,因为这是我第二次花一个小时来寻找解决方案)。
问题与语言设置无关,而是RC文件存储不正确。我的文件是 ANSI 格式。当我用 Windows 记事本打开文件并将其保存为 Unicode 后,我就能够再次在工作室中打开和编辑资源项目。 (缺少 0xFF 0xFE)
对我有帮助的是替换这个:
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
(指定语言英语,美国使用 ANSI 拉丁语 1;西欧 (Windows) 编码)
通过这个:
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#pragma code_page(65001)
(指定使用 UTF-8 编码的中性语言)
一旦我进行了更改(确保 .rc 文件是 UTF-8 编码的),Visual Studio 就不再抱怨了。
见https://docs.microsoft.com/en-us/windows/win32/intl/code-page-identifiers 和 https://docs.microsoft.com/en-us/windows/win32/api/winnt/nf-winnt-makelangid#remarks
我找到了适合我的解决方案。
- 在Visual Studio中打开'Code View'中的*.rc文件。
- 搜索以下部分:
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUSD)
LANGUAGE LANG_NEUTRAL, SUBLANG_SYS_DEFAULT
#pragma code_page(1252)
...
注释完整的
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEUSD)
块并保存文件。打开 'Resource View' 中的文件。关闭它。 (也许你必须在这里更改和保存一些东西)
通过 Visual Studio 中的 'Code View' 重新打开 *.rc 文件。取消注释之前注释的部分并保存文件。
经过这几步,问题就解决了。我不知道哪个步骤解决了问题,但最终这是我解决问题的方法。
我的解决方案受到以下解决方案的启发:https://www.codeproject.com/Questions/40860/Resource-file-opening-problem
在我的情况下,更改语言实际上并不重要,我只是将其转换为 UNICODE(在 Microsoft 记事本中 - 我假设这是 UTF-16)- 它成功了。
请注意这里有一个答案,