• ベストアンサー

リソースにあるHTMLを展開させることは可能??

VisualStudioのリソース管理を使ってHTMLをビルドしたプログラムの中に含んでいます。 そのファイルをダウンロードさせることなくIEで開いてあげることはできませんでしょうか? プログラムのREADMEとして使うものですが、そのプログラムを動かした以降は必要がないものなので余計なゴミでディスクを汚したくないと思っています・・・

質問者が選んだベストアンサー

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

単にhtmlの内容を表示させたいというのなら 一旦リソースの中身をメモリに展開→閲覧 かと思いますが、 問題はメモリ上のhtmlをどうやってブラウズするかだと思います。 とりあえずMFCならCHtmlViewを使ってテキストのみなら表示できるようです。 http://up-beat.pos.to/linux/cdiary.cgi?year=2005&mon=10&no=7#vc20051006 例 Navigate(L"about: <font color=\"red\">aiueo</font>" ); ※MFCでなくてもIEコンポーネントでもできるかもしれません。 ただイメージ画像を埋め込む方法は分かりませんでした。 後はアプリケーション自体がWebサーバーになる方法でしょうか。 つまり127.0.0.1に接続するということです。これなら何でも出来ます。 ※ブラウザを作るよりwebサーバーをたてる方が遥かに簡単です プログラムのREADMEとして使うという事ですがhtmlに拘らないのであれば RTFファイルに変換してみてはどうでしょうか? RTFであれば画像を埋め込む事もできるかと思います。 http://homepage2.nifty.com/c_lang/sdk2/sdk_134.htm 実際テストプログラムを作ったわけではありませんが、 この説明を見る限り、メモリー経由で渡せるようなので RTFファイルはリソースとしてexeに埋め込めば、ご所望の事が比較的 簡単にできるかもしれません。 ※EDITSTREAM::dwCookieにリソースIDを渡し、コールバックでそのリソースを読み込みます あと超手軽な方法としては、リソースとして埋め込んだhtmlファイルをtempフォルダに展開し アプリ終了時(あるいは不要になった時)に削除するという方法です。 ※ただしこれは強制終了したときにtempフォルダにゴミが出ます。

mr-r00
質問者

お礼

ありがとうございます。大変参考になる意見ありがとうございました。

その他の回答 (1)

回答No.1

> そのプログラムを動かした以降は必要がないものなので余計なゴミでディスクを汚したくないと思っています・・・ いや、結局リソースに含めるなら、その分exeが肥大化するので、 ディスクを圧迫する事には変わらないと思うのですが。 むしろ、表示させる為の仕組みの分、単体でhtmlファイルを置いておくより、 余計に容量を食う事になります。 素直にreadme.htmlとして置いておく方が良いんじゃないですか?

mr-r00
質問者

お礼

ありがとうございます。

関連するQ&A