重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

過去の質問に

『C、C++でアーカイバ(ツール)作成』
http://oshiete1.goo.ne.jp/qa3411598.html

というのがありました。これは複数のファイルを一つのテキストに全部データを
書き込んでまとめてしまうというものです。
このまとめる原理はなんとか理解できたのですが、それをどう利用するかがわかりません。

よく自作ゲームとかで音楽や画像などの複数のファイルを1つにパッキングしてそれを
利用していたりしますが、どうやって一つのファイルにまとまったものを
解凍することなくWinAPIやDirectXの関数にロードしているのでしょうか?

仮にパックしたものを解凍してからロードするのであればフォルダやファイルが作られて
わざわざパック化した意味がないですし・・。

A 回答 (1件)

全てメモリー上で処理します。

(パックされたファイルの必要な部分をfread等を使ってメモリー上に展開します)
例えばDirectXなら
メモリ上からテクスチャを読み込めるものも用意されていますし、
(D3DXCreateTextureFromFileInMemory等)
WindowsAPIでも、ほとんどの操作がファイルに展開しなくても
メモリー上で可能です。
    • good
    • 0
この回答へのお礼

以前疑問に思っていましたがそういう役割だったんですね。
おかげさまで理解できました。ありがとうございます!

お礼日時:2008/04/09 15:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!