画像の有無を調べる?
画像の有無を調べる?
自重すると言っておきながら質問してしまってすいません・・
DXライブラリを使用しているのですが
画像名を引数として渡すと画像が存在するかが返ってくる関数などは無いでしょうか?
DXライブラリを使用しているのですが
画像名を引数として渡すと画像が存在するかが返ってくる関数などは無いでしょうか?
Re:画像の有無を調べる?
access関数を利用してみてはどうでしょうか?
参考サイト
ttp://www.orchid.co.jp/computer/cschool/CREF/access.html
char *fname = "test.png"; if(access(fname,0) != 0) printf("%sは存在しません。\n",fname);使い方としてはこんなかんじでしょうか。
参考サイト
ttp://www.orchid.co.jp/computer/cschool/CREF/access.html
Re:画像の有無を調べる?
と思ったんですが
access関数はどのヘッダファイルを読み込めば使えるのでしょうか?
一応自分でも「C++ access関数」とかで検索してみたのですが
書いてあるサイトが見つからなかったので・・
access関数はどのヘッダファイルを読み込めば使えるのでしょうか?
一応自分でも「C++ access関数」とかで検索してみたのですが
書いてあるサイトが見つからなかったので・・
Re:画像の有無を調べる?
>access関数はどのヘッダファイルを読み込めば使えるのでしょうか?
VisualStudio2008なら io.hにあります。
ただし、関数名はちょっと異なりますが。
※ ネットで見つからないなら、ヘッダを grepして探しましょう。
Re:画像の有無を調べる?
Windows APIを使ってもよいのなら、shlwapi.hにこんな関数があります。
BOOL PathFileExists(LPCTSTR pszPath);
↓が参考です、英語ですが。
http://msdn.microsoft.com/en-us/library/bb773584(VS.85).aspx
BOOL PathFileExists(LPCTSTR pszPath);
↓が参考です、英語ですが。
http://msdn.microsoft.com/en-us/library/bb773584(VS.85).aspx
Re:画像の有無を調べる?
OpenFileとCreateFileで検索して
「atlfile.h」と言うヘッダが見つかりましたが違ったようです・・
ちなみに「ヘッダを grep」とはどういうことでしょうか?
「Windows API」はまだ使えそうにありません・・
あと英語無理でした・・
「atlfile.h」と言うヘッダが見つかりましたが違ったようです・・
ちなみに「ヘッダを grep」とはどういうことでしょうか?
「Windows API」はまだ使えそうにありません・・
あと英語無理でした・・
Re:画像の有無を調べる?
ヘッダをgrepとは、簡単に言えば検索のことです。(UNIX系のOSでは、ファイル内テキスト検索のコマンド名はgrep。)
Windows APIは使えないと言いますが、そんなに難しくありませんよ、普通に、
#include<shlwapi.h>
を書いて、DXライブラリ関数の呼び出しと同じように、
PathFileExists("tekitou.png");
と呼び出せばいいです。戻り値がTRUEなら存在する、FALSEなら存在せずです。
後、個人的にはaccess関数は避けておいたほうがいいのではないかなと思います。<io.h>の関数は、環境への依存度が大きいからです。(PathFileExistsは、Windows APIが使えるところならば大抵使える。)
Windows APIは使えないと言いますが、そんなに難しくありませんよ、普通に、
#include<shlwapi.h>
を書いて、DXライブラリ関数の呼び出しと同じように、
PathFileExists("tekitou.png");
と呼び出せばいいです。戻り値がTRUEなら存在する、FALSEなら存在せずです。
後、個人的にはaccess関数は避けておいたほうがいいのではないかなと思います。<io.h>の関数は、環境への依存度が大きいからです。(PathFileExistsは、Windows APIが使えるところならば大抵使える。)
Re:画像の有無を調べる?
あ~なるほど環境への依存度も考えたほうが良いんですね
Windows APIは言語の一種か何かと思っていましたが
意外と身近なものだったんですね・・
多分これで行けると思うので試してみます
ところで少し表題からずれますが
①ヘッダファイルの中身って結構いろいろ書かれているようですが
ヘッダファイルを読み込むだけでそれなりに実行ファイルの容量が増えるのでしょうか?
②DxLib.h以外のヘッダってどこにあるんでしょうか?
Windows APIは言語の一種か何かと思っていましたが
意外と身近なものだったんですね・・
多分これで行けると思うので試してみます
ところで少し表題からずれますが
①ヘッダファイルの中身って結構いろいろ書かれているようですが
ヘッダファイルを読み込むだけでそれなりに実行ファイルの容量が増えるのでしょうか?
②DxLib.h以外のヘッダってどこにあるんでしょうか?
Re:画像の有無を調べる?
やってみたんですが
access関数を使った処理の方は見た感じ問題なく動いたのですが
PathFileExists関数を組み込んだ関数を呼び出すと
Error: 外部シンボル 'PathFileExistsA' が未解決(D:\新しいフォルダ\データ\RESISTANCE\パソコン部\AA.CPP\DEBUG\AA.OBJ が参照)
と言うエラーが出ます・・
これはどういう意味なんでしょうか・・?
access関数を使った処理の方は見た感じ問題なく動いたのですが
PathFileExists関数を組み込んだ関数を呼び出すと
Error: 外部シンボル 'PathFileExistsA' が未解決(D:\新しいフォルダ\データ\RESISTANCE\パソコン部\AA.CPP\DEBUG\AA.OBJ が参照)
と言うエラーが出ます・・
これはどういう意味なんでしょうか・・?
Re:画像の有無を調べる?
使ったことないから勘ですが
#pragma comment( lib, "shlwapi.lib" )
をincludeのあとに入れたらコンパイル通るかも?
基本的に未解決ってのはライブラリがリンクされていない時に出るエラーです。
<ファイル容量
当然増えます。気にする程じゃないですが。
<ヘッダの場所
適当に<math.h>とか書いて右クリックして「ドキュメントを開く」押したらタブが開くので
タブにカーソル当てたらフルパス見れますよ
#pragma comment( lib, "shlwapi.lib" )
をincludeのあとに入れたらコンパイル通るかも?
基本的に未解決ってのはライブラリがリンクされていない時に出るエラーです。
<ファイル容量
当然増えます。気にする程じゃないですが。
<ヘッダの場所
適当に<math.h>とか書いて右クリックして「ドキュメントを開く」押したらタブが開くので
タブにカーソル当てたらフルパス見れますよ
Re:画像の有無を調べる?
>>コンパイル通るかも?
通りました、どうもありがとうございます
>>当然増えます。気にする程じゃないですが
たしかにDxLib.hが187KB程度ですから大して増えなさそうですね
>>適当に<math.h>とか書いて
BCCでやってみましたができませんでした・・
どこに書けばいいのでしょうか?
通りました、どうもありがとうございます
>>当然増えます。気にする程じゃないですが
たしかにDxLib.hが187KB程度ですから大して増えなさそうですね
>>適当に<math.h>とか書いて
BCCでやってみましたができませんでした・・
どこに書けばいいのでしょうか?
Re:画像の有無を調べる?
BCCをどこにインストールしたかにもよりますが、C:\borland にインストールしたのであれば、
C:\borland\bcc55\Include
というところにあります。
後、
>Windows APIは言語の一種か何かと思っていましたが
>意外と身近なものだったんですね・・
Windows APIは、Windows本体そのもののようなものです。Windowsであれば必ず存在します。
C:\borland\bcc55\Include
というところにあります。
後、
>Windows APIは言語の一種か何かと思っていましたが
>意外と身近なものだったんですね・・
Windows APIは、Windows本体そのもののようなものです。Windowsであれば必ず存在します。
Re:画像の有無を調べる?
<って事はWindows以外のOSだと使えないんでしょうか?
意識してないと思いますが質問の意味が広義すぎます。
Windows以外のOSで動かないといけないものを作っているのですか?
まず検索してWindows APIがどういうものか調べた後
自分にとって不都合を感じる点があったらそこに焦点を当てて再度質問して下さい。
意識してないと思いますが質問の意味が広義すぎます。
Windows以外のOSで動かないといけないものを作っているのですか?
まず検索してWindows APIがどういうものか調べた後
自分にとって不都合を感じる点があったらそこに焦点を当てて再度質問して下さい。
Re:画像の有無を調べる?
そういえば広義ですね
主語が抜けてる・・
とりあえず独立的な処理に使っているので
不具合が出てから直しても問題なさそうですね
では解決にしておきます
どうもありがとうございました
主語が抜けてる・・
とりあえず独立的な処理に使っているので
不具合が出てから直しても問題なさそうですね
では解決にしておきます
どうもありがとうございました
Re:画像の有無を調べる?
横から入ってきてすみません;
同じ類の質問で少し気になったので・・・。
以前自分は、データがあるかないかを判定するときに
fopen関数がファイルオープンを失敗したときにNULLポインタを返してくることを利用して
そのデータの有無を判定していたのですが、
これは危険なのでしょうか?
同じ類の質問で少し気になったので・・・。
以前自分は、データがあるかないかを判定するときに
fopen関数がファイルオープンを失敗したときにNULLポインタを返してくることを利用して
そのデータの有無を判定していたのですが、
これは危険なのでしょうか?
Re:画像の有無を調べる?
>fopen関数がファイルオープンを失敗したときにNULLポインタを返してくることを
>利用してそのデータの有無を判定していたのですが
fopenの戻り値ではファイルが存在するかどうかは判りません。
判るのはそのファイルに対して読み込み・書き込みなどアクセスできるかどうか、です。
ファイルが無ければ fopenは勿論失敗しますが、ファイルがあっても
そのファイルへのアクセス権がなかったりしても失敗します。
具体的にはファイルに Read Only属性がついているのに書き込みモードで開こうとした場合や
セキュリティ的にアクセス権がない場合、別のスレッド・プロセスでそのファイルが
使用中である(ロックされている)場合などがあります。
そのほか、環境的な問題や実装上の内部的な事情によっても失敗することはありますので、
(読み書きできるかどうかは関係なく)ファイルの有無だけが知りたい場合には
不適切といえますね。
Re:画像の有無を調べる?
そういえばexcelでファイルを開いているとfopenで失敗したことがありました;
今は Windows API が使えない環境でゲームを作っていますので PathFileExists が使えません・・・
ゲームをやっているときはファイルを開いたりはしないので(環境の方もそのハードで動くだけで良いので
少々危険ですがfopenで妥協することにします
どうもありがとうございました m(_ _)m
後、こちらのほうに色々なやり方がまとめて答えてありました (fopenの方法もあって驚きました
ttp://oshiete1.goo.ne.jp/qa3399080.html
今は Windows API が使えない環境でゲームを作っていますので PathFileExists が使えません・・・
ゲームをやっているときはファイルを開いたりはしないので(環境の方もそのハードで動くだけで良いので
少々危険ですがfopenで妥協することにします
どうもありがとうございました m(_ _)m
後、こちらのほうに色々なやり方がまとめて答えてありました (fopenの方法もあって驚きました
ttp://oshiete1.goo.ne.jp/qa3399080.html
Re:画像の有無を調べる?
>>fopen関数がファイルオープンを失敗したときにNULLポインタを返してくることを利用して・・
そういえば私も同じ事やってました・・
>>少々危険ですがfopenで妥協することにします
私もそうする事にします・・
そういえば私も同じ事やってました・・
>>少々危険ですがfopenで妥協することにします
私もそうする事にします・・