Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вопросы по использованию UNICODE

394
14 февраля 2007 года
MegaMozg
317 / / 18.03.2006
Приветствую! Возникли вопросы по Unicode. В файле tchar.h определены макрос _UNICODE и тип TCHAR, при включении макроса - ТCHAR есть wchar_t, если макрос не включен TCHAR есть char.

Код:
#include<iostream>

using namespace std;

main(){

    wchar_t wbuff[10];
    char buff[10];
   
    cout << sizeof(wbuff) << endl; // 20 байт
    cout << sizeof(buff) << endl; // 10 байт
    // Все правильно

    return 0;

}


Код:
#include<iostream>
#include<tchar.h>
#define _UNICODE // TCHAR как wchar_t

using namespace std;

main(){

    TCHAR wbuff[10];

    cout << sizeof(wbuff) << endl; // но 10 байт, как char
       
    return 0;

}


Почему при включенном макросе выдает 10 байт (т.е. TCHAR есть char)?


tchar.h – «устаревшее» имя файла, как зовется его «современный аналог»?
Есть ли, что либо подобное для типов string и wstring?
398
14 февраля 2007 года
Alexandoros
630 / / 21.10.2005
Потому шо нуна указывать юникод в настройках проекта.
Но если есть желание извратнутся, то _UNICODE нуна запихнуть в stdafx.h и перекомпилить stdafx.cpp
1.8K
14 февраля 2007 года
_const_
229 / / 26.11.2003
А что же ты хотел? #define _UNICODE стоит ПОСЛЕ #include <tchar.h>. Как прекомпилируется tchar.h?
394
14 февраля 2007 года
MegaMozg
317 / / 18.03.2006
 
Код:
#define _UNICODE
#include<iostream>
#include<tchar.h>
// теперь все правильно

спасибо!
398
15 февраля 2007 года
Alexandoros
630 / / 21.10.2005
Них не правильно. Я ж написал - в стдафх всунь.
240
15 февраля 2007 года
aks
2.5K / / 14.07.2006
Alexandoros. =))) Такого понятия как stdafx вобще может не быть в проекте. А в конкретном случае - все верно.
398
15 февраля 2007 года
Alexandoros
630 / / 21.10.2005
aks Как ты прекомпилед хедер не назовеш, а плыть надо.

Цитата:

А в конкретном случае - все верно.



Когда аффтар через два дня задаст вопрос, почему у него не работает прога, сам его пинать будеш.

240
15 февраля 2007 года
aks
2.5K / / 14.07.2006
Пока что у автора мизерный исходник, который он может сохранить в одном файле и скомпилять с консоли: cl.exe unicodetest.cpp
Где здесь будут прекомпилед хедеры?
9
15 февраля 2007 года
Lerkin
3.0K / / 25.03.2003
Да хорош вам уже. ;) В данном случае, важно условие:
 
Код:
#define _UNICODE
// а тут уже хейдеры...
1.8K
15 февраля 2007 года
_const_
229 / / 26.11.2003
Цитата: Alexandoros
aks Как ты прекомпилед хедер не назовеш, а плыть надо.



Precompiled header'а тоже может не быть. А для указания define для всего проекта существуют опции компилятора. В частности, для MC - это /D.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог