- 1人でゲームが作れるように修行します。2
157 :SGGK ◆6pZCoAtaxk [sage]:2011/02/28(月) 22:47:24.76 ID:ard6obcB - 今回のプログラム修正は前回と違って、warningが出ないようにしたい。(前回あまりにもたくさん出てきたので諦めてしまった。)
warning C4290: C++ の例外の指定は無視されます。関数が __declspec(nothrow) でないことのみ表示されます。 上記のwarningメッセージは、プログラムソースの例えば、void loadFiles()throw(int);と書いた行のような場所で多数出た。 エラー処理の命令でtry{この中でエラー出たら何かをthrowする。}catch(){左の()内とthrowされた値が同じ時に処理する内容をここに書く}というのがあって、 その最初の{}の中には関数を入れる事も出来て、その関数の中からエラー時にthrowすることも出来る。 つまり外に向けてthrow出来る関数を宣言するときにthrow(int);(注:この例ではthrowされる値の型はint型になる)を横に付けるらしい。 でも、VS2008では、この仕様をフォローしてないので、throwされる型は指定できない。 warning C4290: はそういう事を言っているらしい。 このwarningが出ないようにするには、 #pragma warning( disable : 4290 ) を書いてやればよいとの事。 たしかに出なくなった!
|