Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 06.07.2004, 14:43   [включить плавающее окно]   #1
videomanst
Новенький
Автор темы
 
Регистрация: 17.08.2003
Question Русский шрифт в программах на С++ (Visual studio NET)?

Народ пишу прогрраммы на microsoft с++ что входит в пакет visual studio net 2003.
Но при выводе в консоли, вместо русских букв выходит абракадабра.

Как выводить русский шрифт на экран?
videomanst вне форума  
Ответить с цитированием
Непрочитано 06.07.2004, 15:26   [включить плавающее окно]   #2
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Кодировка какая?
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 06.07.2004, 20:05   [включить плавающее окно]   #3
DeaD...Just DeaD
Мужской Продвинутый
 
Регистрация: 09.02.2003
Адрес: Chaos
videomanst
а MSDN почитать не судьба или религия не позволяет?
Для таких как вы ведь писали...
DeaD...Just DeaD вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 07.07.2004, 11:36   [включить плавающее окно]   #4
videomanst
Новенький
Автор темы
 
Регистрация: 17.08.2003
а MSDN почитать не судьба или религия не позволяет?
Для таких как вы ведь писали...

Да нет у меня MSDN и английский плохо знаю, работаю под windows xp но как сделать? Visual basic.net работает в порядке, русские шрифты выдаються без проблем, а вот с++ проблеммы, подскажите плиз?
videomanst вне форума  
Ответить с цитированием
Непрочитано 07.07.2004, 12:45   [включить плавающее окно]   #5
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
videomanst
1) учимся пользоваться комментариями и цитатами
2) msdn всегда доступен на http://msdn.microsoft.com
3) Если не можешь перевести тех. документацию, то что лезть в программирование? Это такая область, где без английского нельзя. Вся хорошая документация на английском.
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 07.07.2004, 13:48   [включить плавающее окно]   #6
videomanst
Новенький
Автор темы
 
Регистрация: 17.08.2003
Ну хоть покажи где там читать, а там уже переведу. Заранее спасибо!
videomanst вне форума  
Ответить с цитированием
Непрочитано 07.07.2004, 20:30   [включить плавающее окно]   #7
DeaD...Just DeaD
Мужской Продвинутый
 
Регистрация: 09.02.2003
Адрес: Chaos
ключевое слово CharToOem

p.s.

Код:
#include <iostream>
#include <windows.h>
 
#define _UNICODE

using namespace std;

int wmain()
{

	char foo[256];

	CharToOem(L"Здравствуй мир!", foo);
	cout << foo;

	return 0; 
}

Последний раз редактировалось DeaD...Just DeaD; 07.07.2004 в 21:04.
DeaD...Just DeaD вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 29.11.2004, 15:20   [включить плавающее окно]   #8
Breeze
Интересующийся
 
Регистрация: 06.05.2003
DeaD...Just DeaD

А как этот код выглядит на Билдере?
Breeze вне форума  
Ответить с цитированием
Непрочитано 29.11.2004, 21:17   [включить плавающее окно]   #9
DeaD...Just DeaD
Мужской Продвинутый
 
Регистрация: 09.02.2003
Адрес: Chaos
Breeze
функция CharToOem - это функция WinAPI. Так, что код в билдере будет мало чем отличаться от того, что я привел выше.
DeaD...Just DeaD вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 30.11.2004, 20:23   [включить плавающее окно]   #10
Breeze
Интересующийся
 
Регистрация: 06.05.2003
DeaD...Just DeaD

Да код работает в Билдере если убрать "L" из выражения " CharToOem(L"Здравствуй мир!", foo); "
Это опечатка или так и должно быть?

А можно пожалуйста обьяснить что это значит:
1. #define _UNICODE
2. using namespace std;
3. Почему wmain, это что особенность microsoft с++?

И контрольный Это будет работать во всех компиляторах на windows? Например Borland, gcc.

P.S А есть ли другие способы? Например если у меня несколько десятков cout << "Здравствуй мир!";
Breeze вне форума  
Ответить с цитированием
Непрочитано 30.11.2004, 21:57   [включить плавающее окно]   #11
DeaD...Just DeaD
Мужской Продвинутый
 
Регистрация: 09.02.2003
Адрес: Chaos
Breeze
с борландовским компилером знаком слабо.

Это опечатка или так и должно быть?
да так должно быть. L - Microsoft-specific литерал показывающий, что строка мультибайтовая.
1. #define _UNICODE
включает "Microsoft-specific "generic-text" mappings for many data types, routines, and other objects"
using namespace std;
ну что тут сказать... внимательно изучаем стандарт С++
Почему wmain, это что особенность microsoft с++?
да Microsoft-specific wide-character version of main

Это будет работать во всех компиляторах на windows? Например Borland, gcc.
CharToOem работать будет везде

P.S А есть ли другие способы?
других способов не знаю...

Последний раз редактировалось DeaD...Just DeaD; 30.11.2004 в 22:02.
DeaD...Just DeaD вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 30.11.2004, 23:16   [включить плавающее окно]   #12
Breeze
Интересующийся
 
Регистрация: 06.05.2003
DeaD...Just DeaD

Ок! Мне тоже это помогло. В сети находил доки, но все там как то через Ж.
Спасибо за помощ.

Последний раз редактировалось Breeze; 30.11.2004 в 23:18.
Breeze вне форума  
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 06:15. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey