Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по программированию на C/С++

Автор: ShIvADeSt
Дата сообщения: 26.06.2006 01:03
Vladimir_Pashutin
Mickey_from_nsk
если последует продолжение дискуссии о разных средах, будет запрет на пост, здесь конкретная тема.
Автор: DLans
Дата сообщения: 03.07.2006 00:58
Народ, в консоли (пишу на C++, Microsoft Visual C++ 2005 Express, тип приожения - console application).
Вместо русских букв крякозябры.
Я был по этой ссылке: http://www.rsdn.ru/article/qna/ui/concp.xml
Хочу использовать третий вариант.
Я скачал программу, установил ее, однако не понимаю следующего шага:

Цитата:
Переключаем клавиатуру на раскладку DOS-CP866 (есть в RusLat'е и такая, наряду с KOI-8 и Russian Translit)

Где переключать клавиатуру??? Я перерыл всю справку винды, а так же яндекс - информации по этому поводу не нашел.

Автор: ShIvADeSt
Дата сообщения: 03.07.2006 01:12
DLans
читать полностью там не пробовал? тебе же сказали заменить стандартный переключатель на руслат, вот там это и есть, хотя надо юзать CharToOem в противном случае на других компах есть шанс не прочитать, что написано.
Автор: DLans
Дата сообщения: 03.07.2006 01:27
ShIvADeSt, я же написал в предыдущем посте "скачал и установил программу" - я имел в виду этот руслат!
Вот только не понимаю для чего он нужен - неужто только для того, чтобы пикать, когда язык переключают.
А вариант с CharToOem слишком громоздок и неуклюж, имхо.
Автор: WiseAlex
Дата сообщения: 03.07.2006 10:06
DLans
есть еще один здесь кроме того есть еще и местный путеводитель...
Автор: DLans
Дата сообщения: 03.07.2006 12:48
WiseAlex, спасибо за линк, но мне кажется, что подобные способы только загружают код программы, тем более, если выводить сообщение на русском несколько раз.
Я бы все же хотел попробовать выполнить инструкции связанные с РусЛатом и переключением раскладки.
Пожалуйста, подскажите, кто знает, где же все таки менять кодировку?



Добавлено:
Я попробовал пока вариант с CharToOem() но компилятор пишет, что невозможно подключить windows (#include<windows>)..
Автор: WiseAlex
Дата сообщения: 03.07.2006 13:05
DLans

Цитата:
тем более, если выводить сообщение на русском несколько раз.

а в чем разница м/у cout<<"Привет"; и wcout<<L"Привет"; ? два лиших символа - совсем небольшой оверхед
Автор: DLans
Дата сообщения: 03.07.2006 15:49
WiseAlex, даже если если так - такой способ все равно не работает...
Автор: WiseAlex
Дата сообщения: 03.07.2006 15:52
DLans
почему?
Автор: DLans
Дата сообщения: 03.07.2006 17:15
WiseAlex, я же уже написал почему:
Я попробовал пока вариант с CharToOem() но компилятор пишет, что невозможно подключить windows (#include<windows>)..
Автор: WiseAlex
Дата сообщения: 03.07.2006 18:08
DLans

Цитата:
я же уже написал почему:
Я попробовал пока вариант с CharToOem() но компилятор пишет, что невозможно подключить windows (#include<windows>)..

при чем здесь CharToOem?
чистый с++:

Код:
#include <iostream>

int main(int argc, char* argv[])
{
//устанавливаем локаль для кодировки oem866
setlocale(LC_ALL,"rus_rus.866");
//выводим на экран теперь функциями с префиксом w(т.е. unicode)
//и строки преобразуем в unicode c помощью префикса L

//стандартный С вариант
wprintf(L"привет мир\n");
//вариант для С++
std::wcout<<L"привет мир\n";
return 0;
}
Автор: Abs62
Дата сообщения: 03.07.2006 20:44
DLans

Цитата:
Я попробовал пока вариант с CharToOem() но компилятор пишет, что невозможно подключить windows (#include<windows>)..

Естественно, ибо файл именуется windows.h
Автор: DLans
Дата сообщения: 03.07.2006 21:04
Abs62, я все файлы подключаю без '.h'

#include <iostream>
и т.д.

WiseAlex, спасибо, сейчас попробую.



Добавлено:
WiseAlex, попробовал - работает. Наверно этим вариантом и буду пользоваться!
Еще раз спасибо!

Автор: Abs62
Дата сообщения: 03.07.2006 22:32
DLans

Цитата:
я все файлы подключаю без '.h'

#include <iostream>
и т.д.

Это ты подключаешь файл iostream (не iostream.h - это другой файл!) - такой файл есть. А файла windows (без .h) - нет. О чём и говорит компилятор.
Автор: Mickey_from_nsk
Дата сообщения: 04.07.2006 06:50
Abs62

Цитата:
Это ты подключаешь файл iostream (не iostream.h - это другой файл!) - такой файл есть. А файла windows (без .h) - нет. О чём и говорит компилятор.

А вот интересно, ЕМНИП в стандарте прописано, что все старые заголовочные файлы (например, stdio.h) можно подключать без расширения .h, но с буковкой с спереди. То есть stdio.h -> cstdio. Если это так, то и windows.h должен перейти в cwindows. Так это или нет? Какие есть мнения?
Автор: Abs62
Дата сообщения: 04.07.2006 07:33
Mickey_from_nsk
Там сказано "the contents of each header cname shall be the same as that of the
corresponding header name.h", то бишь о соответствии содержания соответствующих файлов, а не о преобразовании их имён. И относится это к стандартной библиотеке. Так что никуда windows.h переходить не должен.
Автор: Mickey_from_nsk
Дата сообщения: 04.07.2006 11:42
Abs62
Ну я так понимаю, строго там не написано, как добиваться одинакового контента. В MSVC2003, например в файле cstdio тупо включается файл stdio.h в обрамлении namespace std. Другое дело (кстати, спасибо за текст, нашел наконец описание стандарта), что это написано применительно к стандартной библиотеке. Тогда - да. Преобразования файла быть не должно.
Автор: paparazzo
Дата сообщения: 07.07.2006 10:40
Вопрос по VS2005

При подключении к проекту файлов cstdlib и cstdio и компиляции, в cstdlib и cstdio обнаруживается сотня синтаксических ошибок типа C2143 и С2059. Вчем может быть дело?
Автор: XDiaBLo
Дата сообщения: 10.07.2006 07:34
paparazzo
А в VS2005 лучше на C# писать :-\
Автор: imagister
Дата сообщения: 10.07.2006 15:54
И сем же лучше?
Автор: ShIvADeSt
Дата сообщения: 11.07.2006 00:47
XDiaBLo
imagister
Последнее предупреждение, здесь вопросы по программированию, а не выбор на чем лучше.

Автор: Mickey_from_nsk
Дата сообщения: 11.07.2006 10:03
paparazzo
А сам код привести слабо?
Автор: paparazzo
Дата сообщения: 11.07.2006 10:53
Вот здесь код
При попытке компиляции возникают ошибки C2143 и С2059 в cstdlib и cstdio .

http://optdesign.narod.ru/sobol.C

http://optdesign.narod.ru/sobol.H


Автор: Abs62
Дата сообщения: 11.07.2006 21:23
paparazzo
cstdlib и cstdio - это хидеры C++, а не C. Отсюда варианты:
1. Использовать вместо них C-хидеры stdlib.h и stdio.h.
2. Сменить расширение файла на .cpp.
3. Указать в опциях "Compile as C++ code".
Автор: XDiaBLo
Дата сообщения: 12.07.2006 07:00
Abs62
Хмм, а чего компилятор по расширению чтоль определяет как компилить? Глупо по-моему...
Автор: Abs62
Дата сообщения: 12.07.2006 08:04
XDiaBLo
А по чему он должен определять?
Не нравится - я ж говорю, для каждого файла проекта можно укказать свой тип компиляции. Ручками.
Автор: paparazzo
Дата сообщения: 12.07.2006 10:18
Abs62

Спасибо, помогло. Просто переименовал в .cpp
Автор: RedLord
Дата сообщения: 12.07.2006 10:47
XDiaBLo

из MSDN:

Give your files the .c extension, for example mysource.c. The Visual C++ compiler automatically assumes that files with the .C extension are C files and not C++ files, and rejects C++ syntax and keywords (such as public, private, and class).

C++ files use the .cpp extension.

See the /TC, /TP compiler options for more information.

Автор: DLans
Дата сообщения: 12.07.2006 19:26
Не знаю, тут ли задавать вопрос..
В общем, вопрос такой.
Нужна бесплатная библиотека с помощью которой в Visual C++ 2005 Express можно писать программы с "виндовым" интерфейсом (а если по русски - чтобы была панель программы и на нее просто перетаскивать кнопки, чекбуттоны, радиобуттоны и т.д.) - то бишь как в дельфи или C++ Builder.
Или может подобные программы пишут другим способом?

p.s. Нашел такую вещь как Fox Tools (она из этой оперы или нет, интересно), даже заинсталлил его в Visual C++ 2005 Express, но что дальше с ним делать - не знаю.
Подскажите новичку в этом деле.
Автор: KADABRA
Дата сообщения: 13.07.2006 10:12
DLans
А в Express версии разве нету MFC?
New project->MFC Application->Type: dialog based

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193

Предыдущая тема: не знаю как назвать тему :-)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.