Fix error RC2104 undefined keyword or keyname
Introduction
When you use the Microsoft Visual Studio to compile a cpp
project, and encounter this problem about error RC2104: undefined keyword: Key
, here is an article on how to fix this problem.
Review
The picture best illustrates the problem, the error message and related code is shown as below image:
Therefore, let’s find more about the error RC2104
. And the error
definition can be found in Resource Compiler Error RC2104.
This error is often caused by a typo in the resource definition, or in the included header file. It can also be caused by a missing header file.
But here the problem is quite strange, when you locate to the error code, you will find that there is no syntax error at all. But why it always shows us the error on this string?
Therefore, let us continue to look for possible errors in the resource file. A place that is most likely to cause this problem comes into view.
We see here that the code page of the resource will be set to 936, but our current resource file is UTF-8 encoded, here is very likely to cause the resource compiler to use the wrong code page to read the content, and eventually cause this error.
So let us comment this line of code page setting:
and recompile the project again:
Wow! What an exciting moment, isn’t it?
Conclusion
Now we know that this error is caused by the code page setting does not match the actual file character encoding, so we need to pay special attention to this problem, especially when you are compiling a project written on different language of operating system.