トップページ > 過去ログ > 記事閲覧
VisualStudio2012について
名前:匿名希望 日時: 2012/10/20 15:38

こんにちは、当方VS2012を使用しております。 2010を使用していた際には何も問題はなかったのですが、2012へ移行するとdebugビルドでは問題ありませんがreleaseビルドにすると error LNK2026: モジュールは SAFESEH イメージには安全ではありません。 というエラーが出るようになりました。 試しにプロジェクトを1から作り直しウィンドウを生成して点を描画してキー入力を待って終了するプログラムを書きましたが、同様にエラーが出ました。 DxUseCLib.lib libbulletcollision_vc6.lib libbulletdynamics_vc6.lib libbulletmath_vc6.lib libpng.lib zlib.lib libjpeg.lib ogg_static.lib vorbis_static.lib libtheora_static.lib libbulletcollision_vc6.lib ogg_static.lib 以上の部分で問題が発生しているようです。 問題を回避する方法があればどなたかご教示頂ければ幸いです。

Page: 1 |

Re: VisualStudio2012について ( No.1 )
名前:匿名希望 日時:2012/10/20 15:52

追記: 使用しているDxLibのバージョンは最新のものです。
Re: VisualStudio2012について ( No.2 )
名前:管理人 日時:2012/10/20 19:31

ご報告ありがとうございます すみません、Release ビルドを正常に実行するにはもう一つプロジェクトの設定をする必要がありました よろしければ以下の手順でリンカーの設定を変更してください 1.プロジェクトの設定の左側の項目から『構成プロパティ』→『リンカー』→『詳細設定』を選択 2.右側リストの一番下にある『安全な例外ハンドラーを含むイメージ』の項目を『いいえ(/SAFESEH:NO)』に   変更して『適用』ボタンを押して設定を適用 使い方ページの方も修正しておきました 以下はエラーの解説です。ご興味がありましたら読んでください。 上記の変更を加えなくても VisualStudio 2003 以降でコンパイルした libファイルを使用していればエラーは発生しないのですが、 今回エラーが発生した libファイルはすべて VisualC++ 6.0 ( 1998年発売 )で作成していたので、エラーが発生します VisualStudoi 2003 以降では不動小数点型( float や double )の値を整数型( int や short など )にキャストする処理があると VisualC++ 6.0 に存在しない関数を内部で呼び出すコードが生成されてしまい、出来上がる libファイルが VisualC++ 6.0 で 使用できなくなってしまうので、VisualC++ 6.0 でビルドしています ( DXライブラリ本体は浮動小数点型を整数型にキャストするコードを VisualC++ 6.0 でビルドする libファイルに逃がしているので  VisualStudoi 2005 でビルドしています )
Re: VisualStudio2012について ( No.3 )
名前:匿名希望(解決) 日時:2012/10/20 19:43

おかげさまで無事コンパイルすることができました。 迅速な対応ありがとうございました。

Page: 1 |