Unicode
От: Amor Россия  
Дата: 26.09.02 12:56
Оценка:
Здравствуйте, у меня такой вопрос.

Пишу консольную программу под Windows 2000 на VC++6.0
И вот я сомневаюсь: надо ли ее делать в Unicode?
Я понимаю, что если я сделаю ее в ANSI, работать будет.
Но наверно лучше в Unicode, раз под 2000.
Если я правильно рассуждаю, то как настроить среду, чтоб и макросы все были настроены
и wmain вызывалась и чтоб std::cout умел различать эти строки (если такое вообще возможно).

Спасибо.
Re: Unicode
От: comer США http://getboost.codeplex.com/
Дата: 26.09.02 13:01
Оценка:
Здравствуйте Amor, Вы писали:

A>Пишу консольную программу под Windows 2000 на VC++6.0

A>И вот я сомневаюсь: надо ли ее делать в Unicode?
A>Я понимаю, что если я сделаю ее в ANSI, работать будет.
A>Но наверно лучше в Unicode, раз под 2000.
A>Если я правильно рассуждаю, то как настроить среду, чтоб и макросы все были настроены
A>и wmain вызывалась и чтоб std::cout умел различать эти строки (если такое вообще возможно).

А что за прога? Зачем в Unicode на консоле?
Она может что то обрабатывать, например Unicode текст, но на консоль лучше выводить все на английском (всякие консоли бывают ).
getboost.codeplex.com
citylizard.codeplex.com
Re[2]: Unicode
От: Amor Россия  
Дата: 26.09.02 13:05
Оценка:
Здравствуйте comer, Вы писали:

C>А что за прога? Зачем в Unicode на консоле?

C>Она может что то обрабатывать, например Unicode текст, но на консоль лучше выводить все на английском (всякие консоли бывают ).

Вообщем-то я не знаю как это делается.
Я знаю, что 2000 работают с Unicode, ну типа наверно и консольные приложения надо делать консольными.
Есть ведь такая функция wmain(int, wchar_t).
Может я и ошибаюсь....
Re[3]: Unicode
От: comer США http://getboost.codeplex.com/
Дата: 26.09.02 13:24
Оценка:
A>Я знаю, что 2000 работают с Unicode, ну типа наверно и консольные приложения надо делать консольными.

А что делаешь то, если конечно это не военная тайна?
getboost.codeplex.com
citylizard.codeplex.com
Re: Unicode
От: __Nicolay Россия  
Дата: 26.09.02 13:38
Оценка:
Здравствуйте Amor, Вы писали:

A>Пишу консольную программу под Windows 2000 на VC++6.0

A>И вот я сомневаюсь: надо ли ее делать в Unicode?
A>Я понимаю, что если я сделаю ее в ANSI, работать будет.
A>Но наверно лучше в Unicode, раз под 2000.
A>Если я правильно рассуждаю, то как настроить среду, чтоб и макросы все были настроены
A>и wmain вызывалась и чтоб std::cout умел различать эти строки (если такое вообще возможно).

Лучше всего включить файл tchar.h
там есть макросы для работы со строками и с Юникодными и с MultiByte
есть соответствено _tmain, _tWinMain,

если нужен cout и stl-ные string-и, то для этого нужно что-то вроде:

typedef std::basic_string<TCHAR> string;

#ifdef UNICODE
    #define _tcout wcout
#else
    #define _tcout cout
#endif


После этого если тебе нужен проект с поддержкой Юникода — надо вставить

#define UNICODE, а заодно #define _UNICODE
Re[4]: Unicode
От: Amor Россия  
Дата: 27.09.02 06:16
Оценка:
Здравствуйте comer, Вы писали:

C>А что делаешь то, если конечно это не военная тайна?


Ничего особенного, тестовая программка для WNet, это даже не важно.
По ходу дела, так никто не делает...
Судя по ответу __Nicolay как-то это заморочено и не заточено под иснользование Unicode,... может я че не понимаю?
Вот создаешь проект ATL — есть конфигурации с Unicode. Все ясно — разные могут быть приложения. А здесь...
Re[5]: Unicode
От: User99  
Дата: 27.09.02 06:56
Оценка:
Здравствуйте Amor, Вы писали:

A>Здравствуйте comer, Вы писали:


C>>А что делаешь то, если конечно это не военная тайна?


A>Ничего особенного, тестовая программка для WNet, это даже не важно.

A>По ходу дела, так никто не делает...
A>Судя по ответу __Nicolay как-то это заморочено и не заточено под иснользование Unicode,... может я че не понимаю?
A>Вот создаешь проект ATL — есть конфигурации с Unicode. Все ясно — разные могут быть приложения. А здесь...
А что тебя смущает? Добавь новую конфигурацию. В настройках этой конфигурации С/С++->General в поле Preprocessor def пропиши _UNICODE и будет все "чинно-ладно как в старину". Да, если уж на то пошло, создавать нужно 2 конфигурации одну для уникод дебаг, другую уникод релиз. Кроме того никто тебе не мешает и удалять ненужные конфигурации. Их может сколько твоей душе угодно. Одна например под уникод и заточена под оптимизацию по быстродействию, другая уникод и дебажная третья уникод и заточенная на оптимизацию по размеру генер кода и т.д.
Re[5]: Unicode
От: __Nicolay Россия  
Дата: 27.09.02 08:26
Оценка:
Здравствуйте Amor, Вы писали:

A>Здравствуйте comer, Вы писали:


C>>А что делаешь то, если конечно это не военная тайна?


A>Ничего особенного, тестовая программка для WNet, это даже не важно.

A>По ходу дела, так никто не делает...
A>Судя по ответу __Nicolay как-то это заморочено и не заточено под иснользование Unicode,... может я че не понимаю?
A>Вот создаешь проект ATL — есть конфигурации с Unicode. Все ясно — разные могут быть приложения. А здесь...

Ну ты можешь сам создать конфигурацию с поддержкой UNICODE

Если у тебя VC6

Build->Configurations->Add...

Называешь конфигурацию
Unicode Debug

Copy Settings from :
Debug

В project Settings->C++->General->Preprocessor definitions вместо _MBCS : UNICODE, _UNICODE

после этого в этой конфигурации все макросы начинающиеся на _t разворачиваются в юникодные
например
T("string") -> L"string"
_tprintf -> wprintf
_tcscpy -> wcscpy
и т.п.

А в старой конфигурации

T("string") -> "string"
_tprintf -> printf
_tcscpy -> strcpy
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.