在Visual Studio中使用CMake管理的项目默认编码为multi-bytes,我们在开发Windows项目时可能需要用到UNICODE
这一个宏,因为有一些Windows的接口是在不同的编码下有不同实现的。这个时候我们需要将项目的编码修改为Unicode编码,这个时候我们需要在CMakeLists.txt
中通过add_definitions
命令添加define flag进行配置。
关于add_definitions
细节可以看下方CMake官方文档。
https://cmake.org/cmake/help/latest/command/add_definitions.html
- CMakeLists.txt配置
cmake_minimum_required (VERSION 3.8)
project ("CMakeProjectDemo")
add_definitions("-DUNICODE" "-D_UNICODE")
add_subdirectory ("CMakeProjectDemo")
- 测试
#include "CMakeProjectDemo.h"
#include <Windows.h>
int main()
{
#ifdef UNICODE
std::cout << "UNICODE" << std::endl;
#else
std::cout << "NOT UNICODE" << std::endl;
#endif
return 0;
}
- 运行结果
以上代码实现在Visual Studio 2022。