この質問の逆をやりたいです。
ファイルを実行可能ファイルに配列として埋め込みますが、後で実行可能ファイルから埋め込みファイルを抽出したいと思います。
ここではobjcopyが役立つようですが、適切な呪文はまだわかりません。
(編集:質問を明確にします。元々編集する際に、どういうわけかその核心を取り除きました...)
埋め込みファイルを独自のセクション内に配置すると、objcopyを使用してそのセクションを生の出力ファイルに抽出できると思います。gccを__attribute__((section("embedded_file") ))
調べてください。または、リンカーを使用して別の方法でファイルをexeに取り込む場合は、別の方法で別のセクションにファイルを取り込むことができるはずですが、私はそれを行うことに慣れていません。
配列の先頭に認識可能なパターンを配置して、ファイル内のデータを見つけやすくします。
Windows実行可能ファイルを作成する場合は、データを配列にエンコードするだけでなく、実行可能ファイルのバイナリリソースに配置します。その後、通常のWindowsリソース関数(、など)を使用FindResource
しLoadResource
てデータを取得できます(ただし、正しく動作させるには、当初のように見えるよりも少し注意が必要です)。