#ifdef WIN32
#include <windows.h>
#endif
#include <irrlicht.h>
using namespace irr;
using namespace irr;
using namespace core;
using namespace video;
using namespace scene;
#pragma comment(lib, "Irrlicht.lib")
#ifdef WIN32
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE
hPrevInst, LPSTR strCmdLine, int nShowCmd)
#else
int main()
#endif
{
IrrlichtDevice *device =
createDevice(EDT_OPENGL,dimension2d<u32>(320,240),16,false,false,false);
IVideoDriver *driver = device->getVideoDriver();
//ウインドウタイトル設定
device->setWindowCaption(L"IrrLicht");
while(device->run())
{
driver->beginScene(true,true,0xFF6060FF);
driver->endScene();
}
device->drop();
return 0;
}
irrlichtの解説サイトの大きなところのコードをそのまま使うとこんなエラー↓
main.cpp(23): error C2664: 'irr::createDevice' : 2 番目の引数を 'irr::core::dimension2d<T>' から 'const irr::core::dimension2d<T> &' に変換できません。(新しい機能 ; ヘルプを参照) 1> with 1> [ 1> T=irr::s32 1> ] 1> and 1> [ 1> T=irr::u32 1> ] 1> 理由: 'irr::core::dimension2d<T>' から 'const irr::core::dimension2d<T>' へは変換できません。 1> with 1> [ 1> T=irr::s32 1> ] 1> and 1> [ 1> T=irr::u32 1> ] 1> この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。 1> 1>ビルドに失敗しました。
が出ます。これはirrlichtのバージョンが違うためで2011/10/30現在最新バージョンでは
<s32>→<u32>
で動きます.エラーの内容から変えただけで正式に正解でないかと不安でしたが、サンプルプログラムを読むとこれで正解のようです.