Как отключить Unicode в проекте VС++?
У меня есть проект VC++ в Visual Studio 2008.
Он определяет символы для Unicode в командной строке компилятора (/D "_UNICODE"/D "UNICODE"
), даже если этот символ не включен в разделе препроцессора для проекта.
![alt text]()
В результате я компилирую версии Unicode всех функций библиотеки Win32, а не ANSI. Например, в WinBase.h есть:
#ifdef UNICODE
#define CreateFile CreateFileW
#else
#define CreateFile CreateFileA
#endif // !UNICODE
Где в проекте VC++ включается юникод, как я могу его отключить?
Ответы
Ответ 1
Вы пробовали: Свойства проекта - Общие - По умолчанию проекта - Набор символов?
См. ответы в этом вопросе о различиях между вариантами "Использовать многобайтовые символы" и "Не задано": О наборе символов и quot; вариант в visual studio 2010
Ответ 2
Бургос имеет правильный ответ. Чтобы уточнить, набор символов должен быть изменен на "Не задано".
Ответ 3
свойства проекта → свойства конфигурации → общий → набор символов
Ответ 4
По какой-то причине я заметил, что установка в unicode для "All Configurations"
фактически не применяется ко всем конфигурациям.
Фото:
![Настройка Configuragion In IDE]()
Чтобы подтвердить это, я бы открыл .vcxproj и подтвердил правильный токен
находится во всех 4 местах. На этой фотографии я использую unicode. Итак, строка
Я ищу "Юникод". Для вас вы, скорее всего, хотите, чтобы он сказал "MultiByte".
Фото:
![Подтверждение изменений в файле конфигурации]()
Ответ 5
используйте #undef UNICODE
в верхней части основного файла.
Ответ 6
вы можете перейти к свойствам проекта → свойствам конфигурации → Общие → Проект по умолчанию
и измените "Набор символов" с "Юникод" на "Не задано".
Ответ 7
Ни один из вышеперечисленных решений не работал у меня.
Но
#include <Windows.h>
работал нормально.