Это совершенно безумие.У Microsoft есть механизмы для поддержки как ANSI (как они это называют), так и UNICODE из одного и того же кода, поскольку Windows 95/8 / Me были операционными системами ANSI, а NT / XP / Vista и т. Д. Являются операционными системами UNICODE.Поэтому, если вы действительно хотите, вы можете написать один набор кода, который поддерживает обе системы, и просто перекомпилировать для каждой системы.
Но кого больше интересует Windows 95/98 / Me?Тем не менее, этот материал продолжает сбивать с толку новичков.
Вот говядина, в Windows нет функции с именем CreateDirectory, есть функция UNICODE с именем CreateDirectoryW и функция ANSI с именем CreateDirectoryA. макрос CreateDirectory преобразуется в CreateDirectoryW или CreateDirectoryA в зависимости от того, какие параметры компилятора вы определили.Если вы в конечном итоге используете CreateDirectoryW (как вы, очевидно, и сделали), вы должны передать ей строку Unicode, если вы используете CreateDirectoryA, то вы передадите обычную строку ASCII.
В вашем случае проще всего было бы забытьобо всем этом и просто вызовите CreateDirectoryA напрямую.
CreateDirectoryA("c:\\some\\directory", NULL);
Почему так сложно создать каталог в C ++?Я предполагаю, что поскольку в 70-е годы, когда C был новым, не каждая операционная система имела каталоги, поэтому этот материал никогда не превращался в языковой стандарт.