Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не собирается проект с русскими буквами, Компилятор DEV C++ 
V
    Опции темы
Anikmar
Дата 21.9.2009, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



zim22, в общем все нормально кроме крякозябров. Правда с крякозябрами в ситуации wprintf я еще не сталкивался, нотут хоть более-менее понятно в чем дело.

Теперь уже легче. Спасибо.

Добавлено через 4 минуты и 48 секунд
Цитата(mrbrooks @  21.9.2009,  09:04 Найти цитируемый пост)
используйте C# - в нем таких проблем нет

В билдере таких тоже нет, но есть другие (например - цена)  smile 



Цитата(mrbrooks @  21.9.2009,  09:04 Найти цитируемый пост)
Anikmar, кстати  камрад - ради спортивного интереса проверь - как оно вот так:

Вывод программы:

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Process returned 3 (0x3)   execution time : 0.015 s
Press any key to continue.

Проблема у меня не в крякозябрах была - с ними я уж как-нибудь справлюсь. А в том, что проект не компилировался (вернее не собирался).
PM MAIL ICQ   Вверх
Anikmar
Дата 21.9.2009, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



В общем при помощи дополнительного флага компилятора 
-finput-charset=iso-8859-1
проблема решилась.

Крякозябры пока не победил - ни один из известных мне способов пока не помог, думаю разберусь. В общем тему закрываю.
PM MAIL ICQ   Вверх
mrbrooks
Дата 21.9.2009, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(Anikmar @  21.9.2009,  09:04 Найти цитируемый пост)
Вывод программы:

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

Process returned 3 (0x3)   execution time : 0.015 s
Press any key to continue.

Ужос. Я люблю M$ VS. Учитывая, что есть EE.

Цитата(Anikmar @  21.9.2009,  09:04 Найти цитируемый пост)
В билдере таких тоже нет, но есть другие (например - цена)

Ага. Нововая ценовая политика просто супер. Дебилдер "фтопку"!
PM MAIL   Вверх
zim22
Дата 21.9.2009, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


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

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



Цитата(mrbrooks @  21.9.2009,  13:53 Найти цитируемый пост)
Ужос. Я люблю M$ VS. Учитывая, что есть EE.

я его тоже люблю. но иногда полезно прогнать исходник через разные компиляторы.


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


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

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



У меня компилирует, только ничего не выводит, а с ключом  -finput-charset=iso-8859-1 получаю вот что.

Код

cc1plus.exe: error: no iconv implementation, cannot convert from iso-8859-1 to UTF-8
D:/Lex/CodeLite/Mesh/test/main.cpp:1:19: error: no iconv implementation, cannot convert from iso-8859-1 to UTF-8
In file included from D:/Lex/CodeLite/Mesh/test/main.cpp:1:
c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/iostream:39:28: error: no iconv implementation, cannot convert from iso-8859-1 to UTF-8
In file included from c:\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/iostream:39,
                 from D:/Lex/CodeLite/Mesh/test/main.cpp:1:



Добавлено через 53 секунды
А на счет кракозябров, попробуй вместо -finput-charset=iso-8859-1 что то типа -finput-charset=cp866 для консоли
PM MAIL   Вверх
Anikmar
Дата 22.9.2009, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(ller @  21.9.2009,  22:24 Найти цитируемый пост)
А на счет кракозябров, попробуй вместо -finput-charset=iso-8859-1 что то типа -finput-charset=cp866 для консоли 

Все дело в том, что нормального рецепта работы wprintf я не нашел. SetLocale у меня никакого особого эффекта не произвело. Устав с экспериментами я просто перевожу wchar_t в char, затем использую CharToOem.
PM MAIL ICQ   Вверх
bsa
Дата 22.9.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(ller @ 21.9.2009,  22:24)
А на счет кракозябров, попробуй вместо -finput-charset=iso-8859-1 что то типа -finput-charset=cp866 для консоли

Ну тогда уж cp1251, так как текст программы вряд ли в консоли набирается.
PM   Вверх
Anikmar
Дата 22.9.2009, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вся эта фигня мне нужна именно затем, чтобы вывести в консоль именно wchar_t. С обычным выводом все в порядке.
Конкретно Dev кодирует Unicode в обычный 1251. Проверил опытным путем. Т.е. функция вывода Unicode текста в консоль выглядит так и я пока ей пользуюсь:
Код

#include <windows.h>
#include <ostream>
#include <wchar.h>
#include <locale.h>
#include <stdarg.h>

using namespace std;

char *MAN_WStrToOEM(wchar_t *pStr, char*pBuff)
{
    int i=0;
    char Temp[512];
    do
    {
        Temp[i] = (char)pStr[i];
    } while (pStr[i++] != 0);
    CharToOemA(Temp,pBuff);
    return pBuff;
}

int main()
{
    char Buff[512];
    wchar_t wBuf[] = L"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";

    printf("Str = %s\n",MAN_WStrToOEM(L"Привет, ламер необразованный",Buff));
    printf("Str = %s\n",MAN_WStrToOEM(wBuf,Buff));

return 0;
}


PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

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


 




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


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

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