[C++ VS 2005] Вопрос касательно компилятора С++ VS 2005

Ventalf

Вопрос касательно компилятора С++ VS 2005.

Как сделать так, чтоб компилятор по умолчанию использовал вызови API с окончанием A вместо W, то есть чтоб вызывал функции которые работают со стандартным 8 битовым ASCII текстом. Оказывается компилятор С++ VS 2005 в отличии от своих предшественников по умолчанию вызывает функции для unicode текста, неприятный сюрприз, старый код, под новый компилятор не работает.

Подскажите пожалуйста какую директиву надо предопределить, для того чтоб компилятор по умолчанию вызывал функции для ASCII текста, чтоб например вместо СreateFile вызывал CreateFileA, а не CreateFileW.

kokoc88

В свойствах проекта General->Character Set->Use multi-byte character set

okunek

#undef UNICODE

Ventalf

Проп спасибо

kokoc88

#undef UNICODE
Так не делают.

okunek

Почему?

yolki

не получится код, который можно "просто использовать ещё раз". нужно будет держать в голове, что он не-юникодный, более того - он отменяет юникодность того, кто захочет этот код использовать

kokoc88

Почему?
Интересный вопрос. Во-первых, ты уже немного ошибся: надо было так же написать #undef _UNICODE Во-вторых, эта опция может влиять не только на эти макросы: например, микрософт может добавить новые в будущем. В-третьих, это всё надо либо прописывать во всех заголовочных файлах, либо самой первой строкой в precompiled header, чего ты так же в своём посте не отметил. Поэтому так не делается.

Maurog

Почему?
потому что говно-метод как ни крути

okunek

обосрали с ног до головы, даже ответить нечего
Оставить комментарий
Имя или ник:
Комментарий: