Ну неплохо было бы увидеть эту ошибку, но да фиг с ней К тому же не нашел я этого аудио апи в мсдн...но по твоим описаниям я бы предложил все сделать следующим образом:
// Где-то в самом начале до начала namespace'а
using DWORD = System.UInt32;
...
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
public class AUDIO_INFO
{
[MarshalAs(UnmanagedType.U4)]
public int dwDuration;
[MarshalAs(UnmanagedType.U4)]
public int dwFrequency;
// MAX_PATH если не ошибаюсь равно 260,
// но лучше завести у себя соответствующую константу
[MarshalAs(UnmanagedType.ByValTStr, SizeConst=260)]
public char[] szSound = new char[260];
}
[DllImport("AudioAPI32.DLL", CallingConvention=CallingConvention.Winapi, CharSet=CharSet.Ansi)]
public static extern DWORD AUDIO_PlayBeeperA(
[In, MarshalAs(UnmanagedType.LPStruct)] AUDIO_INFO lpAudioInfo);
[DllImport("AudioAPI32.DLL", CallingConvention=CallingConvention.Winapi, CharSet=CharSet.Unicode)]
public static extern DWORD AUDIO_PlayBeeperW(
[In, MarshalAs(UnmanagedType.LPStruct)] AUDIO_INFO lpAudioInfo);
Возможно я с именами функций напутал, но вроде общепринятое именование для Ansi и Unicode такое, если что подправишь.
Больше ничего и не нужно - все должно работать Кошка Мёбиуса - кошка, которая гуляет сама по себе...
|