スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MLM MP3 Player 

先日書いたDirectShowでの再生にめどがついたのでHSP版「MP3 List Maker」で対応させてもらった「VBMP3.dll」と共に対応すべく改良。
これで「MCI」、「DirectShow」、「VBMP3」から再生方法を選択できるようになる予定です。
(来月の半ばまでには更新予定)
今回は複数のdllのうち1つを使うのでプログラム時に静的にリンクするのはもったいなかったので動的リンクを方法を調べたのですがちょっと面倒そうだったので他に方法はないかと探すと「遅延ロード」というのを発見。
「遅延ロード」とはプログラム内でdllを使う処理が行われた時に勝手にdllをロードしてくれるもので静的リンクではないのでこれを使うことに。
処理も実際にはどれか1つの方法の処理しかしないのでVCでは初めて自作で抽象クラスを作ってそれを元に各処理を実行できるようにしてみた。
(Javaでは授業で少しやったので概要はなんとなくわかってたので何とかなった)
やっぱりクラスで扱うと同じ関数でそれぞれの処理ができるからやりやすい、やっとVCでオブジェクト指向の恩恵を結構受けたかも。

処理自体の作成は思ったよりうまく進んだのですがdllをロード出来なかったときの例外の取得方法が分からず四苦八苦…
普段、例外処理はあまり使っていないのと使ってもMFCでの例外だったので今回のようなときの取得方法がまったく分からなかった。

結局は以下のようなコードで遅延ロードの例外を取得できた。
(とりあえず動いただけで間違ってる可能性十分あり)
__try{
    dllを使う処理(dllが無い場合ここで例外発生)
}
__except(GetExceptionInformation()){
    例外時処理
}

このコードにたどり着くまでが長かった、まだまだ全然だめだ…
スポンサーサイト

コメント

コメントの投稿















管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
http://inugami2.blog27.fc2.com/tb.php/40-bf5f43b0

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。