c++;到c#MIXERCAPS结构 如何将这个结构从C++转换为C?

c++;到c#MIXERCAPS结构 如何将这个结构从C++转换为C?,c#,c++,struct,C#,C++,Struct,我已经开始了,但是我有点被MMVERSION和szPname[MAXPNAMELEN]卡住了。这就是我现在得到的 [StructLayout(LayoutKind.Sequential)] struct MIXERCAPS { public ushort vMid; public ushort wPid; //<< MMVERSION public int vDriverVersion; //<< missing? [MAXPNAMELEN] public

我已经开始了,但是我有点被MMVERSION和szPname[MAXPNAMELEN]卡住了。这就是我现在得到的

[StructLayout(LayoutKind.Sequential)]
struct MIXERCAPS
{
public ushort vMid;
public ushort wPid;
    //<< MMVERSION
public int vDriverVersion;
    //<< missing? [MAXPNAMELEN]
public string szPname;
public UInt32 fdwSupport;
public UInt32 cDestinations;
}
[StructLayout(LayoutKind.Sequential)]
结构混合卡
{
公共ushort vMid;
公共卫生署;
// 来自平沃克

[StructLayout(LayoutKind.Sequential)]
struct MixerCaps
{
  public ushort ManufacturerID;        
  public ushort ProductId; 
  public int Version;          
  [MarshalAs(UnmanagedType.ByValTStr, SizeConst=32)] 
  public String ProductName;
  public uint Support;
  public uint Destinations;        
  public override String ToString()
  {
 return String.Format("Manufacturer ID: {0}, Product ID: {1}, Driver Version: {2}, Product Name: \"{3}\", Support: {4}, Destinations: {5}", ManufacturerID, ProductId, Version, ProductName, Support, Destinations);
  }
}

MMVersion=UInt,szPname=public fixed char szPname[MAXPNAMELEN];MMVERSION的类型是什么?我假设在某个地方有一个#define或typedef语句。另外,您计划如何使用它,您需要从c#中pInvoke到某个dll中吗?或者您正在尝试重新实现什么?快速搜索结果。@pstrjds感谢pInvoke,是的,我正在尝试使用新的windows sdk
[StructLayout(LayoutKind.Sequential)]
struct MixerCaps
{
  public ushort ManufacturerID;        
  public ushort ProductId; 
  public int Version;          
  [MarshalAs(UnmanagedType.ByValTStr, SizeConst=32)] 
  public String ProductName;
  public uint Support;
  public uint Destinations;        
  public override String ToString()
  {
 return String.Format("Manufacturer ID: {0}, Product ID: {1}, Driver Version: {2}, Product Name: \"{3}\", Support: {4}, Destinations: {5}", ManufacturerID, ProductId, Version, ProductName, Support, Destinations);
  }
}