- 【初心者歓迎】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"
|