FrontPage  ページ一覧  検索  更新履歴  RSS  ログイン

FAQ

WindowsでVisual C++は使えませんか

Visual C++ 9.0/2008に対応したビルドは存在し、CodeBlocks経由で利用できます。IDEとしてのVCに対応したテンプレートは存在しないので、作成していただけると助かります。

Tiger版でメモリアドレス違反(SIGBUS, SIGILL等)をするとフリーズする

エラー検出時に自動的にデバッガが起動する設定になっていると、デバッガがPsychlopsフルスクリーンに隠されフリーズしているように見えます。

ウィンドウモードで開発する(推奨)

Canvasの確保時にウィンドウモードにすると、デバッガを操作したりプログラム単独で強制終了できるようになります。強制シャットダウンするよりも良い方法です。

待つ

そのまま何もキーを押さずに数十秒間待つと復帰します。

デバッガの自動起動をオフにする

名前空間に関する問題

(1-1) Macintoshでコンパイル時に、Point型を使った命令に対してエラーが出ます。

Macintoshでは標準ライブラリにPoint型がすでにあるために、名前が衝突してしまい、コンパイルができません。スコープ演算子Psychlops::を使って、衝突を回避してください。

(コンパイル不可)Point A[n]
 (コンパイル可) Psychlops::Point A[n]

(1-2) Windowsでコンパイル時に、Rectangle型を使った命令に対してエラーが出ます。

(1-1)と同様にWindowsでは標準ライブラリにRectangle型がすでにあるために、名前が衝突してしまい、コンパイルができません。スコープ演算子Psychlops::を使って、衝突を回避してください。

(コンパイル不可)Rectangle A[n]
 (コンパイル可) Psychlops::Rectangle A[n]

(1-3) random()命令に対してエラーが出ます。

スコープ演算子Psychlops::を使って、衝突を回避してください。

(正) Psychlops::random()  (誤)random()

名前空間の問題についての詳細は、(Tips)Cヘッダの環境ごとの差異をご覧ください。

関数の引数に関する問題

(2-1) Canvas::pix(double, double, double)という命令はコンパイルできないのですか?

できません。最後の色の引数をColor(double)としてColor型にキャスト(変換)してください。

(正) display.pix(100,100,Color(0.5));
(誤) display.pix(100,100,0.5);

仕様に関する問題

(3-1) Canvas.flip()を単独でwhileループの中に書くと、画面がちらつきます。

Psychlopsの仕様として、描画はすべてダブルバッファリングの裏画面に行っています。このため、描画命令を書いた後に、単にCanvas.flip()命令だけを繰り返すと、2枚に1枚は何も描画されていない画面が表示されます。これを回避するには、2枚の画面の両方に同じ刺激を描画してください。

(3-2) 画面に変な線が入ったりちらついたりします。

Windows版では、古いビデオカードなどではCanvas::flip()時に垂直同期にあわせたフレーム更新が行われないことがあります。その場合は最新のビデオカードをご利用ください。

(3-3)Image.releaseを実行してもあまりメモリが減らない

下記のmalloc/freeの質疑を参考にしてください。 http://www2s.biglobe.ne.jp/~hig/q_a/Programing_QA02.html#Q4

更新日時:2009/07/30 04:13:39
キーワード:[Tips] [FAQ]
参照:[SideMenu]