Войти
IrrlichtФорум

Irrlicht и mingw32 - проблема с русскими символами - кто знает в чем проблема?

Страницы: 1 2 3 Следующая »
#0
21:46, 19 дек. 2010

В общем когда добавляешь русский текст, он жестоко ругается:)

Пишет "Illegal byte sequence"
Хоть убей его:)

Как это исправить?

Может кто знает другой компилятор?
Желательно поменьше весом и с IDE


#1
3:14, 20 дек. 2010

Проблема видимо в неверных настройках компилятора, там както можно задать кодировку входных файлов в GCC.
Или просто бери Visual Studio (Express), она всё жрёт.

#2
22:43, 20 дек. 2010

не думаю что в компиляторе дело, скорее всего ты пишешь строку так
setText("Привет");

а надо вот так
setText(L"Привет");

ибо иррлихт требует двубайтовые символы, исходник в UTF-8 пересохрани.

#3
23:02, 20 дек. 2010

именно что с L.
Английский понимает, а русский нет.

#4
23:04, 20 дек. 2010

тогда это
>иррлихт требует двубайтовые символы, исходник в UTF-8 пересохрани.

#5
23:09, 20 дек. 2010

попробую, сейчас у нас свет отключили, я с сотки вышел. Как проверю так отпишусь.

#6
16:36, 21 дек. 2010

нифига не помогает...

#7
19:52, 21 дек. 2010

а проблемный кусок кода можешь обособить и запостить сюды?

#8
21:09, 21 дек. 2010

могу, вот пример программы HELLO WORLD


#include <irrlicht.h>

using namespace irr;

using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;


#ifdef _IRR_WINDOWS_
#pragma comment(lib, "Irrlicht.lib")
#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
#endif

int main()
{
 
  IrrlichtDevice *device =
    createDevice( video::EDT_SOFTWARE, dimension2d<u32>(640, 480), 16,
      false, false, false, 0);

  if (!device)
    return 1;

 
  device->setWindowCaption(L"Hello World! - Irrlicht Engine Demo");

 
  IVideoDriver* driver = device->getVideoDriver();
  ISceneManager* smgr = device->getSceneManager();
  IGUIEnvironment* guienv = device->getGUIEnvironment();


  guienv->addStaticText(L"ПРИВET МИР!",          /*
                                                   
                                                   
      вот здесь не компилится                     
      Выдает ошибку                               
                                                   
_____________________________________________________*/


 
 
 
 
    rect<s32>(10,10,260,22), true);

 
  IAnimatedMesh* mesh = smgr->getMesh("../../media/sydney.md2");
  if (!mesh)
  {
    device->drop();
    return 1;
  }
  IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );

 
  if (node)
  {
    node->setMaterialFlag(EMF_LIGHTING, false);
    node->setMD2Animation(scene::EMAT_STAND);
    node->setMaterialTexture( 0, driver->getTexture("../../media/sydney.bmp") );
  }

 
  smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));


  while(device->run())
  {
   
    driver->beginScene(true, true, SColor(255,100,101,140));

    smgr->drawAll();
    guienv->drawAll();

    driver->endScene();
  }


  device->drop();

  return 0;
}

#9
21:14, 21 дек. 2010

И не только там, но и везде где пытаюсь ввести русский текст

#10
21:20, 21 дек. 2010

а как ты определяешь что исходник у тебя в UTF-8 ?

#11
21:32, 21 дек. 2010

изменяю расширение в .тхт и открываю в интернет эксплорере
там во вкладке вид->кодировка показано
PS. Я пользуюсь DevC++5 Может он партачит?

#12
21:37, 21 дек. 2010

эксплорер может привирать, лучше notepad++ поставь, у него в главном меню есть раздел "кодировка", там точно кажет и можно в любую сторону конвертить.

P.s. попробуй http://www.irrlicht.ru/index.php?vm=26.view.33. кодеблокс, я думаю он тебя приятно удивит как IDE, почти Экспресс Студио

#13
21:45, 21 дек. 2010

А там подлостей нет? :)

#14
21:49, 21 дек. 2010

в нотепаде++ или кодеблоксе? и что значит подлости в данном контексте?

Страницы: 1 2 3 Следующая »
IrrlichtФорум

Тема в архиве.