ZerOx4Cの日記だったもの

インポートだけしました

謎のサーフェスが初期化できない現象

うああああああ。このために1日使いそうな勢い。と、ここでこれまでの経緯。


ZerOx は VS2008 Professional を DreamSpark で入手したので使っているんですけど、VC#2008 Express を使っている後輩からメールで救難要請が。
なんでも新しいパソコンが手に入ったので VC#2010 Express をインスコしてみたら、ZerOxの作ったライブラリが動かなくなってしまった。とのこと。


ひゃあ大変と思い、こちらでも VC#2010 Express をインスコして試してみました。なるほど動かない。
静的クラスのメソッド(ゲーム開始部分)を使ったところで NullReferenceException が発生しているのでライブラリを開いて動かしてみると、


(毎回エラーになる訳でもなくて困ったーって話がずらずらずら)


書いてる最中に解決しちゃったー。ということで何だったのか。
実はライブラリ内で SetVideoMode を呼ぶ前にサーフェスの生成処理が入っていたのが原因だったようです。
今まで動いていたのは偶然にもデフォルトのビデオモードが合っていたからなのか、あと再現性の問題も良く分かりませんがとりあえず直ったので後輩にはライブラリを送っておきました。めでたしめでたし。


教訓:あれこれやるのは SetVideoMode の後にしなさい!