トップページ > 過去ログ > 記事閲覧
JPEGをロードすると不正終了する(VISTA非管理者権限)
名前:はいぱーりんく 日時: 2010/09/29 20:03

はじめまして。 DXライブラリで自作ゲームを作りましたが、 PhotoShopで作ったjpegファイルを読み込もうとしたところ、XPなどでは問題ありませんが、どうやらVistaで動かしていると不正落ちする場合があるようです。ただ、それも管理者権限で動かせば大丈夫なようなのです。 画像も、PhotoShopでつくった全てのjpegがダメというわけではなく、ある特定の画像だけのようです。 GIMPなどで保存しなおすと問題なく読めるようになります。 自分の環境では何も起きないので原因がよくわからないのですが、JPEGを読もうとしたときに落ちるらしく、もしかしたらDXライブラリの問題ではないかと思い、報告もかねて質問させていただきました。

Page: 1 |

Re: JPEGをロードすると不正終了する(VISTA非管理者権限) ( No.1 )
名前:いっち 日時:2010/09/30 19:54

使用しているDXライブラリのバージョンはいくつでしょうか? 可能であれば事象の再現するデータをご提供下さい。
Re: JPEGをロードすると不正終了する(VISTA非管理者権限) ( No.2 )
名前:CorzY 日時:2010/09/30 22:26

横レスすみません。 自分も他の掲示板でテストをお願いしていた時に同じ現象が起きたことがあります。 h ttp://www.play21.jp/board/formz.cgi?action=res&resno=61834&page=&id=dixq&rln=62453 いくつか関連外のこともありますが、スレ内の最初の方のレスが大体この件による報告でした。 読み込み成功したものと失敗したものもスレ内レスNo:[61877]辺りで、添付しております。テスト序盤で判明し、はいぱーりんくさん同様、GIMPで保存し直すことで一応、解決しました。 jpeg作者に確認したところ、読み込み失敗するものは、やはりPhotoShop製でした。 参考程度に報告させていただきました。解決の一助になればと思います。
Re: JPEGをロードすると不正終了する(VISTA非管理者権限) ( No.3 )
名前:管理人 日時:2010/10/04 05:32

ご報告ありがとうございます 詳しい仕組みは調べていませんが、読み込みができない直接的な原因は判明しました 少し調べた限りでは一部の jpeg ファイルを読み込む際に jpegファイルを読み込むのに 使用させていただいている libjpeg の内部で tmpfile というテンポラリファイルを オープンするための関数を使用しているのですが、そのテンポラリファイルを作成しようとする フォルダが管理者権限が無いとアクセスできないフォルダとなってしまっていて、 これがテンポラリファイルを使用する処理が必要な jpegファイルが読み込めない 原因となっていました tmpfileではなくOSから取得できるテンポラリファイルパスを使用してテンポラリ ファイルを作成して使用するように変更したところ、手元の Vista の管理者権限が無いアカウントでも 正常に読み込めるようになりました はいぱーりんくさんの環境でも正常に読み込めるか、よろしければお試しになってみてください m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい) > CorzYさん ご情報ありがとうございます 手元に現象を再現できるファイルが無かったので助かりました (^ ^;
Re: JPEGをロードすると不正終了する(VISTA非管理者権限) ( No.4 )
名前:CorzY 日時:2010/10/04 13:53

ご対応有難うございます。 自分の環境で確認したところ、以前まで不正終了してしまったjpgファイルでも、正常動作するようになりました。 ただ、なぜかVisual C++2008でリビルドすると、 libjpeg_d.lib(jaricom.obj【ここはいろいろ代わり複数表示される】) : warning LNK4099: PDB 'vc80.pdb' が 'C:\Program Files\DxLib_VC\プロジェクトに追加すべきファイル_VC用\libjpeg_d.lib' で、または 'c:\Documents and Settings\【exeファイルがあるフォルダ】\vc80.pdb' に見つかりません。デバッグ情報がないものとして、オブジェクトにリンクします。 といったwarningが出るようになってしまいました。 自分の設定のせいかもしれませんが、以前まではこのようなwariningは出ませんでした・・・ 実行ファイル自体は正常に動いているので、それほど問題ありませんが、内部で何か不具合が起きているとまずいので、ご報告させていただきます。
Re: JPEGをロードすると不正終了する(VISTA非管理者権限) ( No.5 )
名前:管理人 日時:2010/10/08 08:41

ご報告ありがとうございます 原因を調べてみます
Re: JPEGをロードすると不正終了する(VISTA非管理者権限) ( No.6 )
名前:管理人 日時:2010/10/16 14:43

原因はわかりませんでしたが、前回アップしたライブラリファイルが VisualC++ 6.0 で使用できなかったので VisualC++ 6.0 でも使用できるように変更したら、件の警告は出力されなくなりました もしよろしければ CorzY さんの環境でも警告が発生しないかお試しになってみて下さい m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: JPEGをロードすると不正終了する(VISTA非管理者権限) ( No.7 )
名前:CorzY 日時:2010/10/17 17:05

ご対応有難うございます。 こちらで確認したところ、警告表示がなくなりました。 どうもVCのバージョンによって、vc70とかvc80のようにpdbファイル名が異なるような気がします。全く検討違いかもしれませんが^^; 警告が出なくなって気持ち悪さがなくなりました。有難うございました。

Page: 1 |