c++;到c#MIXERCAPS结构 如何将这个结构从C++转换为C?
我已经开始了,但是我有点被MMVERSION和szPname[MAXPNAMELEN]卡住了。这就是我现在得到的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
[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);
}
}