大家新年好,我遇到了一个涉及到了平台调用的问题
祝大家在新的一年里编出更好更多的代码,异常少少出这是我的代码请给看看
using System;
using System.Runtime.InteropServices;
class Class1
{
[DllImport("winmm.dll",CharSet = CharSet.Auto)]
private static extern IntPtr waveInGetDevCaps (int uDeviceID,ref WAVEINCAPS lpCaps, int uSize);
//这个函数的作用是根据设备ID得到音频设备的性能
public static void Main(string[] args)
{
WAVEINCAPS b = new WAVEINCAPS();
waveInGetDevCaps(0,ref b,Marshal.SizeOf(b));
Console.WriteLine(b.wChannels);
Console.ReadLine();
}
}
//这个结构的作将被传递给上面的函数以并被填充
[StructLayout(LayoutKind.Sequential,CharSet = CharSet.Unicode)]
public struct WAVEINCAPS
{
public short wMid;
public short wPid;
public long vDriverVersion;
public string szPname;
public uint dwFormate;
public short wChannels;
public short wReserved1;
}
这个到是能得到结果,但是不对比如输出应该是2或1但是在我的计算机上得到的是67请赐教