Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> в 1000 раз о кириллице в КОНСОЛИ, раз и навсегда 
:(
    Опции темы
slutsker
Дата 24.5.2007, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 24.5.2007

Репутация: нет
Всего: нет



уважаемые и опытные программисты, я пытаюсь найти ответ на вопрос на многих форумах, но не могу найти, заранее прошу прощения (это наверно уже 100000 тема по поводу кириллицы, но мне кажется, что большую часть я из них уже прочел    :shok )

при вводе функции chartooem, которая  и упоминается во многих примерах вижу: пробовал много вариаций 

 error C2664: 'CharToOemW' : cannot convert parameter 1 from 'char *' to 'LPCWSTR'


(работаю в MS visual studio 2005)


НАДОЕЛО УЖЕ ПИСАТЬ  
         cout<<"vvedite 4islo";


вот один из привмеров, который я поьзовал

Код

#include "stdafx.h"
#include "windows.h"

int main(int argc, char* argv[])
{
    char s[]="Привет всем!";
    CharToOem(s,s);
    printf("%s\n", s);
    return 0;
}


--------------------
Compiling...project.cppLinking...Embedding manifest...========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
PM MAIL   Вверх
zkv
Дата 24.5.2007, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 12
Всего: 92



slutsker, убери юникод (Unicode) в настройках проекта.

PM MAIL   Вверх
slutsker
Дата 24.5.2007, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 24.5.2007

Репутация: нет
Всего: нет



zkv
не совсем понял, что именно надо сделать   smile 

Это сообщение отредактировал(а) slutsker - 24.5.2007, 22:51
--------------------
Compiling...project.cppLinking...Embedding manifest...========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
PM MAIL   Вверх
Fazil6
Дата 24.5.2007, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: нет
Всего: 60



Project->Properties->Configuration Properties->Character Set = Use Multi-Byte Character Set
PM MAIL   Вверх
Smarts
Дата 25.5.2007, 02:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 23.4.2007

Репутация: 2
Всего: 2



Странно, везде советуют убирать юникод...
Реально, с юникод в NT системах программы работают быстрее, так как ApiA функции только конвертируют аргументы в юникод и вызывают соответствующие ApiW функции.
Просто ставь букву L перед всеми строками, например так:
Код

#include "stdafx.h"
// #include "windows.h" <-- это включать в stdafx.h, но не в .срр файлах

int main(int argc, char* argv[])
{
    LPWSTR s[]= L"Привет всем!";
    wprintf("%s\n", s);
    return 0;
}


Это сообщение отредактировал(а) Smarts - 25.5.2007, 02:51
PM MAIL   Вверх
zkv
Дата 25.5.2007, 03:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 12
Всего: 92



Smarts, если уж на то пошло, то лучше так:
Код

 LPCTSTR s[]= _T("Привет всем!");
 
тогда код не будет зависеть от настроек проекта. 

Цитата(Smarts @  25.5.2007,  02:49 Найти цитируемый пост)
Странно, везде советуют убирать юникод...


если человеку будет интересно узнать что такое юникод, то поиск выдаст ему вагон и маленькую тележку обсуждений, где этот самый юникод обсудили со всех сторон тыщу раз, а повторять одно и тоже напрягает, я предлагал создать и закрепить тему наподобие "Если у вас проблемы с VS2005", и там подробно описать тему с юникодом, потому что  slutsker явно не последний кто столкнулся с этой фичей студии, а начинающих тоже понять можно, они ведь не знают, что надо искать темы по ключевому слову "Unicode", пока им не скажут об этом.
PM MAIL   Вверх
Dronchik
Дата 25.5.2007, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: нет
Всего: 37



Код

#include <iostream.h>//я среду старую 6 использую
#include <windows.h>

int main(int argc, char* argv[])
{
    char s[11];
    CharToOem("Привет всем",s);
    cout << s << "\n";
    return 0;
}



Это сообщение отредактировал(а) Dronchik - 20.10.2007, 17:20


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
Fazil6
Дата 25.5.2007, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: нет
Всего: 60



Цитата(Dronchik @  25.5.2007,  09:34 Найти цитируемый пост)
А на С++ писать слабо

ух ты!!! на С++.... !!!

Надо будет запомнить... На бумажку перепишу себе....

Объяснишь как это к вопросу относится ? 
PM MAIL   Вверх
Ln78
Дата 25.5.2007, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 274
Регистрация: 25.11.2006

Репутация: нет
Всего: 15



Dronchik, мы сами когда-то тоже были пятиклассниками и понимаем, что такое эмоциональное восприятие окружающей действительности с возрастом проходит. Но и ты пойми, что когда взрослые дяди о чем-то беседует, не всегда следует вмешиваться в их разговор (в 3 года можно почти всегда, в 13, увы, уже нет). 
По поводу 
Код

    char s[10];
    CharToOem("Привет всем",s);

посчитай, сколько у тебя буковок и достаточно ли ты отвёл для них места
PM MAIL   Вверх
JackYF
Дата 25.5.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: нет
Всего: 162



+1 двум предыдущим авторам.

Цитата(Dronchik @  25.5.2007,  09:34 Найти цитируемый пост)
А на С++ писать слабо


Мощность и красота С++ состоят вовсе не в том, что мы заменяем

printf/wprintf

на

cout <<


А printf и им подобные конструкции на С++ встречаются довольно часто.
Иногда это просто удобнее, чем городить манипуляторы и чаще всего это будет и быстрее.
Но это уже другой разговор.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
slutsker
Дата 25.5.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 24.5.2007

Репутация: нет
Всего: нет



Fazil6, спасибо, работает!
--------------------
Compiling...project.cppLinking...Embedding manifest...========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
PM MAIL   Вверх
Smarts
Дата 25.5.2007, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 23.4.2007

Репутация: 2
Всего: 2



Цитата(Dronchik @ 25.5.2007,  09:34)
А на С++ писать слабо

Код

#include <stdafx.h>
#include <windows.h>

int main(int argc, char* argv[])
{
    char s[10];
    CharToOem("Привет всем",s);
    cout << s << "\n"
    return 0;
}


О да, на С++, только твой код даже не скомпилится smile 


Это сообщение отредактировал(а) Smarts - 25.5.2007, 23:38
PM MAIL   Вверх
BigHeart
Дата 26.5.2007, 02:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 17.3.2007

Репутация: нет
Всего: нет



или используй функцию CharToOemW(...)   (c теми же параметрами)
PM MAIL   Вверх
Fazil6
Дата 26.5.2007, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: нет
Всего: 60



Цитата(BigHeart @  26.5.2007,  02:27 Найти цитируемый пост)
или используй функцию CharToOemW(...)   (c теми же параметрами)

хм... Использовать вместо чего?
PM MAIL   Вверх
pograp
Дата 19.10.2007, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 29.10.2006
Где: Россия, Москва

Репутация: нет
Всего: нет



могу файл скинуть о Руссификации.
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.1070 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.