2007-01-25から1日間の記事一覧

C#でwaveOutをコールバックで動かす

C#

Cでラッパーdllを作ります. #include "windows.h" #define DLLEXPORT __declspec(dllexport) extern "C" { WAVEFORMATEX wfe; HWAVEOUT hWaveOut; WAVEHDR whdr; LPBYTE lpWave; DLLEXPORT void __stdcall WaveOutOpen(DWORD hWnd, DWORD SRATE) { wfe.wFor…

C#の配列をポインタ配列にして,Cの関数にポインタを渡す.

C#側 unsafe public static void hogecs() { short[] wave_data = new short[44100]; for (int i = 0; i < 44100; i++) { wave_data[i] = (short)(30000 * Math.Sin(2 * Math.PI * 440 * i / 44100)); } fixed (short* ptr = &wave_data[0]) { dll.Class1.ho…