Сейчас на форуме: hgdagon, asfa, bartolomeo (+4 невидимых) |
![]() |
eXeL@B —› Программирование —› Помогите "подружить" Borland C++3.1 и WINDOWS XP. |
Посл.ответ | Сообщение |
|
Создано: 30 декабря 2006 23:50 · Личное сообщение · #1 Начал изучать С++ по книге Лаптева "С++ для начинающих". В книге вместе с обучением разбираются примеры для Borland C++3.1. Вопрос такой: почему почему после компиляции исходника с русским текстом Винда открывает прогу в которой вместо русских букв козябры сплошные? Проги работают, ошибок нет, а с кодировкой беда. Если кто может- разъясните, только поподробнее т.к. я еще новичек. ![]() |
|
Создано: 31 декабря 2006 00:01 · Поправил: alexey_k · Личное сообщение · #2 |
|
Создано: 31 декабря 2006 00:11 · Личное сообщение · #3 |
|
Создано: 31 декабря 2006 00:15 · Личное сообщение · #4 |
|
Создано: 31 декабря 2006 00:19 · Личное сообщение · #5 |
|
Создано: 31 декабря 2006 00:26 · Поправил: 452 · Личное сообщение · #6 Я користуюсь спеціальною утилітою знайдеш в аттачі. А якщо не допоможе виправ в реєстрі HKLMSYSTEMCurrentControlSetControlKeyboard LayoutDosKeybCodes SetValue "00000409"="ru" та HKLMSYSTEMCurrentControlSetControlNlsCodePage SetValue "1250"="c_1251.nls" HKLMSYSTEMCurrentControlSetControlNlsCodePage SetValue "1252"="c_1251.nls" ![]() ![]() |
|
Создано: 31 декабря 2006 00:32 · Личное сообщение · #7 HKLM++SYSTEM++CurrentControlSet++Control++Keyboard Layout++DosKeybCodes SetValue "00000409"="ru" та HKLM++SYSTEM++CurrentControlSet++Control++Nls++CodePage SetValue "1250"="c_1251.nls" HKLM++SYSTEM++CurrentControlSet++Control++Nls++CodePage SetValue "1252"="c_1251.nls" ++ замість слеш щось на сайті слеш \\ \ не показує ![]() |
|
Создано: 31 декабря 2006 01:22 · Личное сообщение · #8 |
|
Создано: 31 декабря 2006 12:08 · Личное сообщение · #9 |
|
Создано: 07 января 2007 03:53 · Личное сообщение · #10 Всем большое спасибо за подсказки! Начну по порядку. Трюк с набором исходника в отдельном от среды редакторе прокатывает, но это такой геморрой! Функция WinAPI средой не определяется, компилятор выдает ошибку. Реестр не правил поскольку в этом не силен. Файлы от 452 ничего не изменили. Так что головняк остался. Попробовал другой компилятор DEV C++, у него такая же хрень. Ввод русского текста без проблем, а вывод в окне при запуске проги корявый. ![]() |
|
Создано: 07 января 2007 04:48 · Личное сообщение · #11 На мой взгляд хоршее решение - установить DosBox. DosBox - программа эмулятор Dos'а, после установки следует настроить файл конфигурации dosbox.conf который будет находиться в директории куда проинсталлирован DosBox. Для ускорения просто установи значения параметров в этом файле: fullscreen=false autolock=false frameskip=3 core=dynamic cycles=auto Подключи с помощью следующей команды диск g: (в том же файле) mount g D: В результате после запуска получишь настоящий Dos. Далее загружаешь любой русификатор keyrus.com к примеру, а затем уже С++. Все должно быть в порядке. ![]() |
|
Создано: 07 января 2007 05:36 · Личное сообщение · #12 rigger, в реестр и не лезь - досовские программы, к которым относится эта версия С++, там ничего не держат. Программы с API хоть и можно компилить в ней, но это полный изварт. А теперь по теме... Запускай С++ из под Far'а. Только перед запуском переключись на русский язык. Тогда в C++ русский тоже будет доступен, правда до первой компиляции. По-моему это приемлемо. ![]() |
|
Создано: 07 января 2007 07:34 · Личное сообщение · #13 |
|
Создано: 08 января 2007 04:12 · Личное сообщение · #14 |
|
Создано: 08 января 2007 23:48 · Личное сообщение · #15 |
|
Создано: 09 января 2007 05:40 · Личное сообщение · #16 И последний вопрос: если никто не может подсказать как править реестр, то может кто подскажет как переписать исходник с использованием WinAPI #include<cstdio> #include<cstdlib> #include<iostream> using namespace std; int main (int nNumberofArgs, char* pszArgs[]) { //Введите температуру в градусах цельсия int celsius; cout<<"Введите температуру по Цельсию:"; cin>>celsius; //для приведенной формулы преобразования //вычислим преобразующий множитель int factor; factor=212-32; //используем...... int fahrenheit; fahrenheit=factor*celsius/100+32; //вывод результатов cout<<Температура по Фаренгейту:"; cout<<fahrenheit; return 0; } Может не совсем корректно, но вроде так. ![]() |
|
Создано: 09 января 2007 05:48 · Личное сообщение · #17 |
|
Создано: 09 января 2007 05:51 · Личное сообщение · #18 |
|
Создано: 09 января 2007 07:00 · Личное сообщение · #19 |
|
Создано: 10 января 2007 06:35 · Личное сообщение · #20 Кроче всем спасибо! Проблему придется решать самому. И на последок совет новичкам: если хотите увидеть результат работы своей программы, прежде чем закроется окно, наберите перед return o; system("PAUSE");. Эту фишку я обнаружил только в одной книге. В других книгах о программировании об этом нет ни слова. На этом тему закрываем. ![]() |
![]() |
eXeL@B —› Программирование —› Помогите "подружить" Borland C++3.1 и WINDOWS XP. |
Эта тема закрыта. Ответы больше не принимаются. |