Intel Compiler & c++ L" macro

Тема в разделе "WASM.HEAP", создана пользователем Fanruten, 2 апр 2010.

  1. Fanruten

    Fanruten New Member

    Публикаций:
    0
    Регистрация:
    1 май 2009
    Сообщения:
    5
    Столкнулся с проблемой, что icc сохраняет строковые константы в кодировке которая указана для документа.

    Скажем есть некий код:

    wchar_t *msg[] = L"Привет";
    MessageBox(0, msg, 0, 0);

    Если собирать при помощи icc, то в msg будет строка в той кодировке, которая установлена для файла с исходником.
    Api функции принимают строки в utf-16, а icc не работает с исходниками в этой кодировке.

    Проблему можно решить если использовать только char (+ соответствующая кодировка исходника),
    или же перекодировать при помощи MultiByteToWideString (исходник в utf-8).

    Есть способы, при компиляции заставить icc сохранить строковые константы в utf-16?
     
  2. KeSqueer

    KeSqueer Сергей

    Публикаций:
    0
    Регистрация:
    19 июл 2007
    Сообщения:
    1.183
    Адрес:
    Москва
    #pragma code_page ?
     
  3. Fanruten

    Fanruten New Member

    Публикаций:
    0
    Регистрация:
    1 май 2009
    Сообщения:
    5
    Ресурсы имеют нормальную кодировку.
    Проблема со строковыми константами в коде.
     
  4. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    >или же перекодировать при помощи MultiByteToWideString (исходник в utf-8)
    Из этого следует, что исходники в utf-8 icl понимает – но при этом понимает неправильно?
     
  5. Fanruten

    Fanruten New Member

    Публикаций:
    0
    Регистрация:
    1 май 2009
    Сообщения:
    5
    Все разрешилось переходом с версии 11.0 на 11.1, теперь есть нормальная поддержка utf-16!