2009年2月11日水曜日

[プログラム]スタティックリンクライブラリも把握

ちゅーかむしろこっちを先にやるべきだったか^^;
スタティックリンクライブラリの方がよっぽど簡単でした。DLLみたく、特別な事をする必要がありません。単にVC++のプロジェクトを「スタティックリンクライブラリ」で作成するのみ。
ただ、そうするとデバッグが面倒なので、最初はプロジェクトを「アプリケーション」で作成しておき、必要なクラスor関数が実装できたら、プロジェクトのプロパティから構成を「スタティックリンクライブラリ」に変更すると吉。ひょっとして常識だったりするのかな・・・^^;
日頃より、
「main関数はInit();、Do();、Fin();だけ!」
というポリシーの元(実際にはもうちょっと増えるけど)組んでいたおかげで、構成の変更は容易でした。main.cppをプロジェクトから除外するだけですしね。
今作っているプログラムのモジュールは5つ。うち3つはC++、1つはC++をラップするC++/CLI、そして最後にGUIとしてC#を使う予定。
まぁ、C++/CLIでラップしなくてもいけるかも知れない。C++とC#で配列をやりとりするならMarshalクラスを利用したらいい話。そこは明日考えよう。
しっかし、asiosdk2はなっかなか理解できん・・・。PortAudioはおおよそ理解できたんだけどなぁ。大差ないだろうに、と思うのだけれどビルドできない。
挙句にはAsioDriverListクラスでデバイス数を取得しようとしたら0個だと。ASIO4ALLを入れてるから最低でも1個、接続はしてないけどEDIROL UA-101もインストールしているから2個見つかってもいいはずなのに。
実際、PortAudioではASIO4ALLが引っかかりました。あの現象は理解できん・・・。AsioDriverListが使えないと面倒じゃん・・・。
とりあえず、今回はPortAudioを使って開発する予定。けどASIOをそのまま叩きたいんだよなぁ。近々チャレンジするとしようかね。
・・・、あのサンプル、あんまり見たくないんだよなぁ・・・Orz