ブログパーツ レンタルCGI
TAKAさんの毎日が発見・ブログ
アマチュア無線の機器製作を中心にした日常の活動記録です (by Taka JA2GRC、このブログはFC2_BLOGを使わせていただいてます。)
≪05月   2017年06月   07月≫
1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  
C++フォームアプリ・その4
 相変わらず、難儀しながら、少しずつですが前進しています。
 ファイル選択ボタンの処理は、思いがけず簡単に変更できましたが、いよいよ、再生ボタンの処理です。 ここで、だいぶつまずきました。 だんだん難しくなってきます。

 今回はマネージのtextBoxに取り込まれたファイル名(ファイルパス)をアンマネージで扱わなければなりません。 で、マネージ変数をアンマネージ空間で扱うのはどうするんだ?と言う事なんですが、ここで、かなり、難儀しましたが、結果から言うと、比較的簡単な変換で行けました。(と思っている) いろいろ調べた過程で分かり易かったのは、この例です。 ポイントは二つ、
・ 変換にはやっぱりmarshallingを使う
・ アンマネージ空間に変数用のメモリエリアを確保しておく必要が有る
 (ガーベージコレクションで消されないために、使い終わるまで確保する必要が有るみたい)
と、まあ、厳密に言うと間違っているかもしれませんが、今のところ、こんな理解です。

150921_cpp_form_13.jpg

 もう一つ、C++のサンプルでは、標準出力に表示させる例が多いのですが、Windowsフォームアプリケーションの中で、標準出力(標準入力も同じだと思う)を使うには、それなりの宣言が必要だと言う事がわかりました。 これも、今まであまり深く追求しなかったのですが、この宣言を入れておけば、標準出力を使ったC++のサンプルも気兼ねなく試す事が出来ます。 なお、この宣言は最後にクローズして解放しておく必要が有るみたいです。 この方法で使われる標準出力とは、リダイレクトしなければ、Windows のコマンドプロンプト画面が使われるみたいです。

 さて、これで、何とか、マネージ空間のtextBoxに入ったファイル名(ファイルパス)をアンマネージ空間で使えそうです。

150921_cpp_form_14.jpg

 早速、Wavファイルを開くまでのコードを書き換えてみました。 とりあえず、Wavファイルオープンから正常復帰したらメッセージを出すようにしてみました。

 さて、この先、ますます、難解になって行きそうですが、どうなる事やら?

150921_cpp_form_15.jpg
コメント
この記事へのコメント
URL :
コメント :
パスワード :
管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
Template designed by アクセラと+αな生活

Powered by まとめ .