今回DLLを使って録音機能をDXライブラリ(VC++2008 Express Editon)で作ったソフトに加えようと思っています。
で、
http://www.vector.co.jp/soft/winnt/prog/se341363.html
こちらにある、WAVE録音/再生用のDLLを使おうと思っています。
ところが、C#で作られていて、サンプルを見てもC#での使い方しかありませんでした。
(C++から呼び出せますよね?)
C#は少ししか理解していないので、ソースを見てもどう応用すればいいか検討もつきません。
DLLについての簡単な知識は
http://www.ne.jp/asahi/hishidama/home/t ... p/dll.html
こちらのサイトを読んだくらいです。
あとは、他のDLLを使った回数は1,2回しかありません。
しかも、いままでは関数を利用したことしかなく、dllからのクラスを扱ったことがありません。
そのときは、CかC++でのサンプルだったのでわかりやすかったのですが。。。
今回は、libファイルがないことから明示的・動的リンク であることはわかりましたが、
↑のサイトではdllからの関数を利用する方法しかかかれていないので、クラスの場合がよく分かりません。
(さらにいえば、詳しいリファレンスがない(または私が見つけられない)ので、どこをみれば関数名やクラス名がわかるのか、あいまいです。)
私が参考になるものだと思ったのをSampleRecorder というサンプルプログラムのソースコードから転載させていただきます。
====PCMRecorder[メタデータから]====
using System;
using System.Windows.Forms;
namespace LIB
{
public class PCMRecorder
{
public PCMRecorder(Form form, IPCMRecorder ipr);
public PCMRecorder(Form form, IPCMRecorder2 ipr2);
public PCMRecorder(Form form, IPCMRecorder2 ipr2, int bufSize, int numberOfBuf);
public void Close();
public void Start(int ch, int hz);
public void Stop();
}
}
====WavWriter[メタデータから]====
using MMSYSTEM;
using System;
using System.IO;
namespace RIFF
{
public class WavWriter
{
public WavWriter(Stream stream, WAVEFORMATEX format);
public WavWriter(string path, WAVEFORMATEX format);
public void Close();
public void Rewind();
public void Write(byte[/url] wave, int size);
public void Write(short[/url] wave, int size);
public void WriteEnd();
}
}
このdllを使って、WAVE録音する手順を教えてください。
具体的には、
1.特別にプロジェクトファイルを設定する必要があるか。(プロジェクトのプロパティだとか、ツール→オプション内など。)
2.またあるなら、どの項目をどのように変更すればいいのか。
3.C++のプログラム内での利用方法。
(とくにクラス名だとか関数名は、C#プログラムのどこをみればいいのかよくわからない。↑がそれっぽいと思ったんですが、どう呼び出せば良いのか。。。)
(4. サンプルがあると、さらにうれしいです)
