Avtem Ответов: 2

Должен ли макрос UNICODE быть определен в каждом исходном файле?


(Моя IDE-Visual Studio 2019)
Итак, речь идет о макро-Юникоде. Что прекрасно работает, если в проекте есть только один исходный файл. Однако если есть несколько исходных файлов, а макрос UNICODE определен только в одном из них, компоновщик разозлится и покажет ошибку:
unresolved external symbol "wchar_t __cdecl getTChar(void)
что вызвано second.cpp файл, который не имеет макроса UNICODE.

Таким образом, решение этой проблемы не совсем очевидно (для меня): установка свойства проекта "Набор символов" на "использовать набор символов Unicode".
Но я хочу знать, как это сделать, не меняя свойство проекта "Набор символов". Должен ли я определять UNICODE в каждом отдельном исходном файле?

Что я уже пробовал:

я попытался найти ответ через Google и поискал в книге "Программирование Windows 5th edition" в главе, где объясняется этот макрос.

2 Ответов

Рейтинг:
20

CPallini

Цитата:
Должен ли я определять UNICODE в каждом отдельном исходном файле?
Да, вы должны это сделать. Однако вы можете определить его как параметр компилятора, см. /D (определения препроцессора)- для установки этого параметра компилятора в среде разработки Visual Studio | Microsoft Docs[^]


Avtem

О, теперь я понимаю. Спасибо за ваш ответ.
Что ж, это здорово, что мы можем установить макрос UNICODE таким образом=)
Ссылка тоже была очень полезна!

Рейтинг:
2

Richard MacCutchan

Вы можете определить его в свойствах проекта в поле дополнительно -> набор символов. Это гарантирует, что все исходные файлы будут скомпилированы с /D "UNICODE" в качестве стандарта.


Avtem

"Вы можете определить его в свойствах проекта" Да, я знал это, это написано в моем первоначальном посте. И второй способ, на который указал несколько минут назад чаллини. Но спасибо вам за ваш ответ!

Richard MacCutchan

Извини, я пропустил это. Но это все равно лучший способ сделать это.

CPallini

5.