トップページ > プログラム > 2015年08月05日 > 22Ehcq84

書き込み順位&時間帯一覧

22 位/166 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000020000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net

書き込みレス一覧

【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
921 :デフォルトの名無しさん[]:2015/08/05(水) 17:14:25.78 ID:22Ehcq84
visual studio関係のスレで聞くべき質問なのかもしれませんが,
相対パスについて(おそらく初歩的な)質問があります.

たとえば,指定したファイルを読み込んで処理をするクラス,
具体的には画像データを読み取るクラスImageReaderがあるとします.
処理内容は,ifstreamからファイルデータすべての情報およびサイズを
読み取って,各画像を表現する構造体に合わせた処理を行う単純なものと
します.実際に利用するとき,new式なら
 ImageReader* imager = new ImageReader( "imagefile's path" );
のようにファイルを指定するのが(初心者の間では?)メジャーだと
思います.
 これをvisual C++2013でビルドして実行可能ファイルを作成し,
実際に問題なく動くことをDebugフォルダ内に該当の画像ファイルを
ちゃんと置いてから実行して確認します.ここまでは問題ありません.

疑問なのはここからで,このDebugフォルダをたとえばデスクトップ上や,
外付けのUSBメモリに移した後,実行可能ファイルを開いてもちゃんと
動作してくれるのはなぜか,です.
実行可能ファイルを開くたびに再コンパイルされているなら,
場所が変わっても相対的な位置関係さえ気を付ければ大丈夫なのは
わかるのですが,再コンパイルなんてしているわけないですよね?
つまり,相対パスを次のようにした場合,
 "data/image/file.dds"
下のカッコでくくった部分が変更されても問題ないのかっていう疑問です.
 "(C:Visual Studio 2013\Projects\Game\solution\title)\data\image\file.dds"
【初心者歓迎】C/C++室 Ver.96【環境依存OK】 [転載禁止]©2ch.net
923 :デフォルトの名無しさん[sage]:2015/08/05(水) 17:40:58.78 ID:22Ehcq84
なるほど,根本的に間違った認識を・・・
コンパイル処理でパスが埋め込まれるわけではないんですね.
良くできてるなぁ

ありがとうございました.


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。