質問
2009年6月21日日曜日 2:50
画像や音声ファイルを埋め込まれたりソースにし、xaml側からとコード側から両方の参照の仕方を教えて頂ければ幸いです。
また、exeに埋め込むには埋め込まれたりソースじゃなくこっちの方が簡単だよといった場合が
ございましたらご紹介いただければ嬉しいです。
よろしくお願いいたします。
すべての返信 (42)
2009年6月21日日曜日 3:17
ビルドアクションを Resource にすれば、xaml からは URI で参照できます。
例えば、プロジェクトに Resources フォルダを作ってその下に Image.png ファイルを配置し、
<BitmapImage UriSource="Resources/Image.png"/>
のように。
それを ResourceDictionary なり Application.Resources なりに記述しておけばコードからも簡単に参照できますね。
2009年6月22日月曜日 12:17
Hongliangさんへ
参考になりましたありがとうございます。
2009年6月23日火曜日 0:07
解決済みになってますが、参考情報までに。
別のアセンブリ内にある、埋め込まれたリソースとかを参照する場合は
以下で示すページに書いてあるように、非常に覚えにくい形で指定しないと
いけません。
http://msdn.microsoft.com/ja-jp/library/aa970069.aspx
(私は毎回上のページを見て書いてます。まだ覚えれない・・・)
かずき Blog:http://blogs.wankuma.com/kazuki/
2009年6月27日土曜日 6:02
かずきさん返信ありがとうございます。
教えて頂いたリンクですが
パスを指定するとき
pack://authority/*path
*こういう風に指定しなさいということなのでしょうか?
すいません。教えて頂いたページに書いてることがややこしくてよくわからなかったです。
ちなみに<BitmapImage UriSource="Resources/Image.png"/>
こういった感じでパスを記述してデバッグしてみたところ
ファイル ○○○.png はプロジェクトの一部ではないか、'Build Action' プロパティが 'Resource' に設定されていません。
となってしまいました。
'Build Action' プロパティが 'Resource' に設定されていませんと言われても「埋め込まれたリソース」に
しているのだからそりゃそうなんですが。
今のところこんな状態です。
2009年6月27日土曜日 13:23
すいません。
確認せずに書いていました。
埋め込まれたリソースの話ではなく、ビルドアクションをResourceに指定したときの指定の仕方です。
WPFの場合は、埋め込まれたリソースにせずにResourceにすると楽です。
埋め込まれたリソースにどうしてもしないといけないのでしたら
WindowsFormのときと同じように、AssemblyあたりからStream取得してやるのしか
思いつきませんでした。
var assm = Assembly.GetExecutingAssembly();
var stream = assm.GetManifestResourceStream("HelloResource.Resource.Image.png");
var source = new BitmapImage();
source.BeginInit();
source.StreamSource = stream;
source.EndInit();
this.Resources.Add("Image", source);
Converterかマークアップ拡張を作ってXAMLだけでいけるようにするのもいいかもしれません。
もし、他に簡単な指定の仕方があるという情報を持っているかたいましたらフォローお願いしますm(_ _)m
かずき Blog:http://blogs.wankuma.com/kazuki/
2009年6月27日土曜日 16:13
かずきさん返信ありがとうございます。
コード側からはStreamを使えばいいのですね。
他の可能性もあるみたいですが、参考になります。
ありがとうございます。
次に
<BitmapImage UriSource="Resources/Image.png"/>
この例に示されているようにxaml側から指定する方法がわからないのです。
ファイル ○○○.png はプロジェクトの一部ではないか、'Build Action' プロパティが 'Resource' に設定されていません。
こんな風にエラーがでます。
埋め込まれたリソースにせずにResourceにすると確かにそっちの方が楽なのですが
exeに埋め込まなければいけない理由がありまして、どうしてもめんどくさいことになってしまいます。
方法をご存知の方いらっしゃいましたらご連絡いただければ嬉しいです。
2009年6月27日土曜日 17:54
Resourceにするとexeに埋め込まれていたような気がするんですけど。
気のせいかな・・・・?
かずき Blog:http://blogs.wankuma.com/kazuki/
2009年6月28日日曜日 5:13
かずきさん返信ありがとうございます。
そこなんですが僕も何だか疑問に思っていたことがあります。
デフォルトで「Resource」になっていますが、画像ファイルがコードと同じ階層だと埋め込まれているようないないような・・・
というのも、画像ファイルが表示されたりされなかったりするのです。
フォルダを作ってそこに画像ファイルを配置して、デフォルトの「Resource」にすると埋め込まれていない感じなんです。
よくわからないのです。
最後に蛇足ですが、かずきさんにはTCPのことでもお世話になっておりますが
この質問に関してはWPFブラウザアプリケーションではなく普通のWPFアプリケーションです。
もしかして、これって重要?なのかと今更思えてきたので一応お知らせしておきます。
2009年6月28日日曜日 12:29
リビルドとかしてみたら表示されませんか?
かずき Blog:http://blogs.wankuma.com/kazuki/
2009年6月28日日曜日 13:09
かずきさん返信ありがとうございます。
リビルドやらせていただきました。
結論から言いますとうまくいきました。
大変ありがとうございます。
ここから蛇足です。
意味がわからないことがあります。
まず、最初はデフォルトの「Resource」で作っておりました。
画像・音声ファイルは大体30Mぐらいあるのですが
そのときは間違いなくexeファイルは数kbyteしかなく
埋め込まれてる感じではなかったです。(何ででしょうか?)
なので、埋め込まれたリソースにしてみたのですがエラーが発生する事態になりました。
そして質問させて頂いたしだいです。
かずきさんのお陰で解決しましたが、疑問が残ります。
「Resource」で埋め込まれるのなら「埋め込まれたリソース」の存在意義って何なのでしょうか?
また、埋め込みたくない人はどうしたらいいのでしょうか?
教えて頂ければ嬉しいです。
2009年6月28日日曜日 13:13
うまくいってよかったです。
ちょっと試してみた感じなんですが、Resourceにすると、リビルドしないと
うまく反映されない動きをすることがあったりします。
埋め込まれたリソースは、WindowsFormの時代からあったもので
WPFではResourceを使いましょうといったくらいの認識で私はいます。
かずき Blog:http://blogs.wankuma.com/kazuki/
2009年6月28日日曜日 20:42
そうですか。名残なんですかね。
ちなみにあれからというもの色々と試してみました。
まず、私勘違いしていたことがあります。
画像ファイルは追加したときデフォルトで「Resource」になっていますが
音声ファイルは追加したときデフォルトで「コンテンツ」になっておりました。(色々いじくったので勘違いしてました)
なので、埋め込みたくない場合は「コンテンツ」にすればよく
同じ階層どうたらこうたらと書きましたが、階層は埋め込みに無関係です。
続きまして、xaml側から「画像」ファイルのパスを記述するのは
色々こねくりまわしたので(色々あってそうせざるをえなかったのですが)ものすごく遠回りしてしまいましたが
プロパティのSourceの所で一覧表示で簡単に選べるようになっているのでサクッとできます。
ここに関してはマイクロソフトさんに感謝です。
コード側から「画像」ファイルを設定するにはStreamを使う。
これはここでかずきさんに教えてもらいましたし、
別のところでえムナウさんにも教えてもらったことがありました、この時は、この外部ファイルの仕様でうまくいきませんでしたが。
次に「音声」ファイルですが、ここでまた問題発生したのです。
MediaElementについて何回か質問させていただきましたが
非常に重くて、設定するのに毎度毎度CPUめえいっぱい状態が数分間続き、かなりの時間を費やすはめになったり、
起動時にコード側からパスを指定したりしてたのですが、この時?なのかなんなのか一瞬音がするんです。
それとアニメーションと一緒に使おうとするとアニメーションの終了のタイミングに問題があったりと
非常に使い勝手が悪かったので、もう二度と使うまいと心に誓い
AudioVideoPlaybackを使うことにしました。
(もっと早く切り替えとけば無駄な時間を浪費せずにすんだのですが・・・とほほ)
それでAudioVideoPlaybackで「Resource」に設定された音声ファイルのパスをコード側から指定する場合
(音声ファイルについてはxaml側から指定したりはしてないです。というか、そういった使い方ってあると思わないのですが???)
埋め込みは問題なくいったのですが、コード側からファイルを参照しようとすると
2147024894エラー(つまりファイルが見つからないとのことです)が発生してしまいます。
パスの指定の仕方はこんな感じです。
Audio ongaku= new Audio("Resource/oto.mp3");
ここから、色々試したところ大変ではありましたが
ビルドアクション→「埋め込まれたリソース」
更に
出力ディレクトリにコピー→「新しい場合はコピーする」or「常にコピーする」(「コピーしない」ではだめ)
とするとエラーが出なくなりました。
理由はさっぱりです。
とりあえず、近況を報告いたします。
ただ、画像ファイルの件ですが埋め込まれているのかいないのか、xaml側から指定しているものが
エラーこそ出ませんが画像が表示されないとかがあるやもしれません。
そのときは、またお願いいたします。
2009年6月29日月曜日 13:21
コード側から音声ファイルにパスを設定する際に、また、問題が発生しました。
VCSEからデバッグすると問題なくできるのですが
Releaseフォルダから別のところ、デスクトップなどににコピーしてexeファイルを起動し
上記のようにパスを設定すると
2147024894エラー(つまりファイルが見つからないとのことです)が発生してしまいます。
音声ファイルは30M位あるので、exeのファイルサイズからして埋め込まれているのは確実だと思うのですが・・・
どうやったら解決できますでしょうか?
よろしくお願いいたします。
2009年6月29日月曜日 20:44
お世話様です。あれから色々試しておりましたところわかったことがありますのでご報告します。
exeファイルと別に外部ファイルとして音声ファイルを一緒に置いておくとエラーがでないです。
つまり、埋め込まれたものを参照しに行くのではなく外のファイルを取りに行ってるようです。
困りました。
以上です。
2009年6月29日月曜日 21:48
Audio ongaku= new Audio("Resource/oto.mp3");
これが単純に、Resource/oto.mp3というファイルを指定してるからじゃないですか??
MSDNを見ても「オブジェクトの新しいインスタンスを初期化し、再生のためにオーディオ ファイルを開く」とありますし。
http://msdn.microsoft.com/ja-jp/library/aa512737.aspxかずき Blog:http://blogs.wankuma.com/kazuki/
2009年6月29日月曜日 23:16
かずきさん返信ありがとうございます。
となると、どのようにパスを記述すればよいのでしょうか?
リンク先を見ても書いていなかったのでよくわからなかったです。
2009年6月29日月曜日 23:49
全然使ったこと無いものなので、APIを見て自分ならこれを試すかなという程度の
情報なのですが・・・
OpenUrlに以前示したMSDNにある「pack://application:,,,/アセンブリ名;component/パス」の形で指定して
動けばもうけ物かなぁと思います。
もともとWPFを意識して作られてるものじゃないと思うので
連携がイマイチなのは仕方ないかもしれないですね。かずき Blog:http://blogs.wankuma.com/kazuki/
2009年6月30日火曜日 13:16
かずきさん返信ありがとうございます。
やってみました。
まず、このパスでやってみました
pack://application:/WpfApplication1;component/Resource/oto.mp3"
結局だめでしたがエラー番号が変わりました。
ErrorCode=-2146697203
これになりました。
この番号で検索してみましたが有用な情報は見つかりませんでした。
次に
pack://application:/Resource/oto.mp3"
こんな感じでやってみましたがやっぱりだめでした。
これもエラーコードは
ErrorCode=-2146697203
これでした。
こんな感じです。
2009年6月30日火曜日 15:25
この辺は見てみましたか?
http://msdn.microsoft.com/ja-jp/library/bb514517.aspx
http://msdn.microsoft.com/ja-jp/library/bb514687.aspx
http://msdn.microsoft.com/ja-jp/library/aa348547.aspx
えムナウ@わんくま同盟 Microsoft MVP Visual Studio C# Since 2005/01-2009/12
2009年6月30日火曜日 22:09
えムナウさん返信ありがとうございます。
教えて頂いたページ読ませていただきました。
リソースにあるファイルを取得する方法がよくわかりました。
助かります。
ただ、今回は
Audio ongaku= new Audio("Resource/oto.mp3");
Audioに設定するには「ファイルパス」が必要でして教えて頂いたページの方法だと
ファイルそのものを呼び出すことになってしまうような感があるのですが間違いでしょうか?
ごめんなさい、よくわからなかったです。
2009年7月1日水曜日 5:30
WPFでDirectXを使うんですか?
ファイル名がほしいんであればファイルがなきゃいけないですね。
プロジェクトのプロパティのリソースに追加して、「var v = プロジェクト名.Properties.Resources.Butterfly;」みたいにやると、旧来(Formsなんかの)のリソースとして「byte[]」読み込まれます。
それをテンポラリフォルダとかに保存すればいいんじゃないですか?
えムナウ@わんくま同盟 Microsoft MVP Visual Studio C# Since 2005/01-2009/12
2009年7月1日水曜日 9:58
えムナウさん返信ありがとうございます。
byte配列を読み込んでそれをテンポラリフォルダに保存して・・・・・
ごめんなさい。わからなかったです。
2009年7月1日水曜日 10:29
どこがわからなかったんですか?
テンポラリファイルのパスとかならぐぐればすぐ出てきますけど
http://www.google.co.jp/search?hl=ja&q=C%23+%E3%83%86%E3%83%B3%E3%83%9D%E3%83%A9%E3%83%AA%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB+%E3%83%91%E3%82%B9&lr=lang_ja
リソースに追加がわからないですか?
わからない場所を教えてください。
かずき Blog:http://blogs.wankuma.com/kazuki/
2009年7月1日水曜日 11:21
かずきさん返信ありがとうございます。
意味がわかりました。助かります。
ただ、ちょっとそれだと問題がありまして、
使う人が音声ファイルを取得できる状態にはできないのです。
exeに埋め込まれたものを呼び出す方法は無いものでしょうか。
よろしくお願いします。
2009年7月1日水曜日 12:29
えムナウさんがおっしゃってる方法は、exeに埋め込まれてる音楽ファイルを
テンポラリファイルに出力する方法なので、ユーザからみたらexe1つで音が鳴ってる
ように見えると思いますよ。
もうちょっと内情を出来る限り教えていただけるとありがたいです。
MediaElementとかそこらへんは重いんですよね…かずき Blog:http://blogs.wankuma.com/kazuki/
2009年7月1日水曜日 12:40
かずきさん返信ありがとうございます。
音が鳴っているように見えたとしても、やはり、それはできないのです。すいません。
そもそもテンポラリーファイルに保存して読み出すぐらいなら
exeと一緒に音声ファイルの入ったフォルダを作ってそこから読み出すので
この質問じたい存在しないです。
exeに埋め込まれた音声ファイルのパスはどうやったら取得できるか教えて頂けると嬉しいです。
2009年7月1日水曜日 12:52
何でできないんですか?
無限極限さんの内情をもうちょっと明かしてもらえないと
提案してもそれは駄目なんですというやり取りばかりになってしまいます。
とりあえず、ファイルを要求してるAPIに、ファイルが存在しないものの再生は
出来ないんじゃないかと思います。
かずき Blog:http://blogs.wankuma.com/kazuki/
2009年7月1日水曜日 12:52
AudioVideoPlayback の Audio/Video を使う限り、テンポラリなどにファイルとして展開しないとどうしようもありません。
// WMP の ActiveX コントロールも同様のはずなので、あとは DirectShow を直接? Video for Windows API でもなんとかなるのかしらー?
2009年7月1日水曜日 13:06
かずきさん、Hongliangさん返信ありがとうございます。
まず、かずきさん返信いただいてありがたいのですが
こちら側にも事情というものがありまして、もう少し察して頂けると嬉しいです。
次に、本題ですがコード側からexeに埋め込まれたファイルパスを設定する方法はないのですか・・・。
残念です。
ちなみに、
Audio ongaku = (Audio)Application.Current.Resources["oto.mp3"];
こんな感じでやってみたところエラーはでなかったです。
ただ、
Audio ongaku = new Audio("ファイルパス");
普通はこうして new するものなので
Audioにイベントを設定するときにエラーが出てしまいます。
2009年7月1日水曜日 13:59
まずファイルパスが必要なものに対してファイルを作らずに設定することはできません。
つぎに MediaElement や DirectX Audio はファイルパスを必要とします。
MediaElement で pack が使えれば Resources で問題ないのですが、実験してもできませんし、以下のサイトでも「Dennis Cheng - MSFT」が「The MediaElement doesn't support the pack:// scheme yet.」と言っているので出来ないです。
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/93d50a97-0d8d-4b18-992e-cd3200693337/
この方向性ではどうしてもできないと思います。
FileStreamで可能な Microsoft.VisualBasic Audio クラス なら可能かもしれませんが wav ファイルのみです(音声フォーマットをツールとかで変換すれば可能でしょうが)。
えムナウ@わんくま同盟 Microsoft MVP Visual Studio C# Since 2005/01-2009/12
2009年7月1日水曜日 14:59
えムナウさん返信ありがとうございます。
Microsoft.VisualBasic Audio クラスで再生する方法はなんだかいけそうです。
mp3もwavに変換すればいい話ですし。(重くなってしまいますが)
調べていて
http://dobon.net/vb/dotnet/programing/playwavfile.html
こんなページを見つけました。
そこでわからないことがあるのですがexeに埋め込むのは2通りあるのでしょうか?
今までに話題にしていたビルドアクションで「Resource」やら「埋め込まれたリソース」にする方法と
http://dobon.net/vb/dotnet/programing/vsresource.html
このページで紹介しているような方法と何が違うのでしょうか?
2009年7月1日水曜日 15:07
そのページで紹介されている方法は、ロケールによって切り替えたりといったことが出来ます。
事情を教えてくれっていうのは、背景がわかるとこういう手があるよというのが
言いやすくなるから出来れば知りたかったです。
後は、守秘義務とかに触れないように一般化することすら出来ないような超特殊な状態なんですかね…
かずき Blog:http://blogs.wankuma.com/kazuki/
2009年7月1日水曜日 15:42
>そこでわからないことがあるのですがexeに埋め込むのは2通りあるのでしょうか?
>今までに話題にしていたビルドアクションで「Resource」やら「埋め込まれたリソース」にする方法と
>http://dobon.net/vb/dotnet/programing/vsresource.html
>このページで紹介しているような方法と何が違うのでしょうか?
そのページの情報は私が示した方法です。
>プロジェクトのプロパティのリソースに追加して、「var v = プロジェクト名.Properties.Resources.Butterfly;」みたいにやると、旧来(Formsなんかの)のリソースと>して「byte[]」読み込まれます。
resx というファイルをリソースプロパティ画面で作りコンパイルして resources ファイルを作成し、それをリンカーが埋め込むという作業をしています。
一般にWindows Formsでよくつかわれている方法です。
そのような経路ではなく直接埋め込むのが「Resource」やら「埋め込まれたリソース」です。
今回は リソースプロパティ画面で作って byte[] を取得して、以下のページでPlayすればいいんじゃないかと思います。
http://msdn.microsoft.com/ja-jp/library/ms127795.aspx
Wavファイルならこちらのページの情報が使えるかもしれませんね。
http://dobon.net/vb/dotnet/programing/playembeddedwave.html
えムナウ@わんくま同盟 Microsoft MVP Visual Studio C# Since 2005/01-2009/12
2009年7月1日水曜日 21:43
みなさん返信ありがとうございます。
exeに埋め込んだ音声ファイルを鳴らすことができました。ありがとうございます。
VisualBasic Audio クラスは再生するたびにStreamを設定しなくてはいけないので
SoundPlayerクラスの方が使いやすいのでこちらにしようと思います。
よく調べると
http://dobon.net/vb/dotnet/programing/playembeddedwave.html#asyncbug
こんな問題があるようでかなり心配ですが・・・
思えば、当初はうまくできず、私の感覚でこんな初歩的なことだからこちらで質問すればすぐできるだろうと思ったのですが
なかなか答えが見つからず、こんなにレス数も増えてしまいました。
ゴールにたどり着けたのはみなさんのお陰です。ありがとうございます。
追記します。
せっかくうまくいってやっとこの問題から解放されたと思ったのですが
別の問題がありまして、音声ファイルに終了イベントを設定していたのですが
これがSoundPlayerクラスに無いのです。
調べてみたところ音を鳴らす方法が多々ある中で終了イベントがあるのが
AudioVideoPlaybackクラスぐらいでした・・・。
できればAudioVideoPlaybackをexeに埋め込んだ音声ファイルで使いたいのですが
設定する方法がなさそうですし、本当はできるのにやり方を知っている人がいないだけなのかわかりませんが
AudioVideoPlaybackでできる方法を教えて頂きたいので
一応、一番最初に掲げた質問は達成できているのですが回答としてマークはもう少し後になったらつけようと思います。
2009年7月2日木曜日 8:07
スレッドでSoundPlayerを終了まで待つモードで動かして終了したらメイン側にイベント投げたらどうでしょうか?
VBですがこんなサンプルですね。kanaiさんの回答。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25804&forum=7
BackgroundWorker クラスのほうが簡単かな。
http://msdn.microsoft.com/ja-jp/library/system.componentmodel.backgroundworker.aspx
backgroundWorker1_DoWork と backgroundWorker1_RunWorkerCompleted で実現可能ですね。
えムナウ@わんくま同盟 Microsoft MVP Visual Studio C# Since 2005/01-2009/12
2009年7月2日木曜日 10:16
えムナウさん返信ありがとうございます。
それでいけます。助かります。
しかも、AudioVideoPlaybackと違ってSoundPlayerはループ再生が
できるので非常にいいです。こちらの方が都合が良いです。
追記します。
喜びもつかのま調べていたら
http://www.atmarkit.co.jp/fdotnet/dotnettips/633waveplayasync/waveplayasync.html
ここに
サウンドを同時に再生できないことが挙げられる
と書いていました・・・・・・・・・・・・・・・・・・・・・・・
多重にならなければいけないのです
この質問の回答自体はクリアしているので回答としてマークをつけても
いいのですが、他の方法があるやもしれないのでもう少し時間を置いてみたいと思います。
あっちがたてばこっちがたたず
一長一短
難しいものですね。
2009年7月2日木曜日 13:33
こういうことがあるんで、目的を教えて頂けないかと言っています。
別に身元を探ろうとかそういう意図があるわけではないです。
どういう感じのことがしたくて、こういうことと、こういうことと、こういう条件を
満たしてるものを、こういう制約のもとで探してますという内容でいいので
今度から質問に添えていただけると嬉しいです。
# TCPしかり 音楽しかり
回答としての内容が一切無い書き込みで申し訳ないですが、宜しくお願いします。
かずき Blog:http://blogs.wankuma.com/kazuki/
2009年7月2日木曜日 14:57
かずきさん返信ありがとうございます。
ちょっとかずきさんがなぜそんなに私の都合を知りたいのかよくわからないです。
えムナウさんは質問にドンピシャリの回答をしていただいております。
えムナウさんに非があるわけではないですし、もちろんかずきさんに非があるわけでもないです。
別の事に支障をきたしたら、こうやってフィードバックしていけばいい話ですし。
これで、私が困ることがあってもかずきさんが困ることはないと思うのです。
それと質問当初に、AudioVideoPlaybackでかたがつく話だと思っていましたので
こういった展開になるとは予想できないです。
目的を教えて欲しいという事ですが何をどこまで説明すればいいのか難しいです。
ですので、ご回答いただいて弊害があればこちらからレスポンスすればよいと思います。
これで、かずきさんにお困りの点があるとは思えないですし
ここまでのやり取りでだいぶ勉強になることも多かったと思います。
ご理解いただけますでしょうか。
2009年7月2日木曜日 15:12
条件が先にあると回答の幅も広がりますので出来るだけ条件を先に出したほうがスムーズに解決につながりますよ。
簡単に言うと小出しに出したのでは非効率で回答側もいろいろ考えないといけないのでフラストレーションがたまるんですね。
私からの忠告は「ごめんなさい。わからなかったです。」で終わりにしないでどこがどうわからないか教えてほしいってとこですねぇ。
最近の、無限極限 さんは以前よりも検索サイトも使っているようだし少しずつ質問なれもしてきていると思うし技術も上がっていると思います。
頑張ってください。
えムナウ@わんくま同盟 Microsoft MVP Visual Studio C# Since 2005/01-2009/12
2009年7月2日木曜日 21:55
無限極限さんの都合を何故知りたいかですが、その方が私が楽だからです。
どう楽かというと
#無限極限さんの提示した情報
画像や音楽ファイルをexeに埋め込みたい。XAMLやコードからの参照の仕方を知りたい。
#そこから想像できる埋め込みたい理由
1.配布を簡単にしたい(exeやdllをこぴぺするだけにしたい)
2.画像や音楽ファイルをユーザに見せたくない
3.その他の理由がある
1か2か3のどの目的でexeに埋め込みたいのかによって回答がぜんぜん違ってくると思います。
例えば、1や2が目的なら、リソースとして埋め込んで、実行時にテンポラリに出力して
それを参照する方法でいいです。
厳密に2を実現したいのでしたら、何らかの方法で暗号化しておかないといけないかもしれません。
その場合は、今回の回答の方法では全然解決にはなってません。
さらにその他の目的があってexeに埋め込みたいのでしたら、今回の回答でいいのか
私からは想像もつきません。
さらには、何か別のものを使うことで、無限極限さんが問題視してることは、exeに埋め込みなんて
しなくても全然問題ないかもしれません。
無限極限さんが、これでいいと満足されたならいいのですが、それでも「わからないから質問してる」のに
回答内容が十分要件を満たしているのか判断しにくいのでは、と思います。
もし駄目な場合、後になってやっぱりこれ駄目なんだけど、他に何か無いですか?という質問になって
堂々巡りになる可能性もあります。
といったところが、目的を知りたいといった背景になります。
かずき Blog:http://blogs.wankuma.com/kazuki/
2009年7月3日金曜日 1:00
横から失礼します。
質問内容についてではありません。
あしからず・・・
かずきさんは都合を知りたいわけではないと思いますよ。
まさに”ドンピシャな回答”を出すためのヒントが欲しいのだと思います。
無限極限 さんに書けない部分があることも分かります。(そこまで書けない理由は、実はよくわかりませんが・・・)
最初に予想できなかったことも分かります。
でも、これだけ続くと、回答されている方は、”それ最初に言ってよ”という気持ちにもなるではないでしょうか?
あと、内容にもよるとは思いますが、別の問題が発生したら質問を分けてもらえると、見ている側としては理解しやすいと思います。
関連しているのはわかりますが、回答が一向につかないので、理解しにくくなっていると感じます。
最初の質問に対する回答で十分な方も、どれが答えか戸惑うと思いますし・・・
コメントとして別の問題が発生していることだけ告げて、質問を別に上げていただけるといいのではないかと思います。
2009年7月3日金曜日 9:23
みなさんご返答ありがとうございます。
だいぶ、違った方にお話が進んでいますね。ここでしていいのなら私も言いたいことがあるのですが本来の目的ではないでしょうし。
一度、このフォーラムでの質問する人、回答する人の姿勢といいますか、あり方についてじっくりお話してみたいのです。
http://social.msdn.microsoft.com/Forums/ja-JP/categories
こちらを眺めてみたところそういった感じの場所が見つかりませんでした。
あえて挙げるならテスト投稿フォーラム
http://social.msdn.microsoft.com/Forums/ja-JP/384/threads
というのがあるので、ここで相談すれば本来の目的とは違えどご迷惑にはならないのではと考えています。
こちらで私よくお世話になっているのですが、もちろん私自身、未熟でいたらない点もあるのですが
ご回答いただいている方の中で他での話ですが理解できない発言をする方が
いらっしゃったりするので、そういった事についてもう少し考える場所があればいいなと思っています。