[Whislly ]老大!快点来吧!

xudaneng 2007-11-30 08:23:50

[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct VideoCompressorInfo
{
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
public string szName;
public Int32 dwHandle;
}

[DllImport("DSStream.dll")]
public extern static int DSStream_EnumVideoCompressor(IntPtr pInfo, ref int piVidCompNum);
private void SetVideoParams_Load(object sender, EventArgs e)
{
int num = 0;
XNStream.DSStream_EnumVideoCompressor(IntPtr.Zero, ref num);

int size = Marshal.SizeOf(typeof(XNStream.VideoCompressorInfo));

IntPtr structPtr = Marshal.AllocHGlobal(size * num);

XNStream.DSStream_EnumVideoCompressor(structPtr, ref num);

XNStream.VideoCompressorInfo[] infos = new XNStream.VideoCompressorInfo[num];

for (int i = 0; i < num; ++i)
{
infos[i] = (XNStream.VideoCompressorInfo)Marshal.PtrToStructure((IntPtr)((int)structPtr + i * size), typeof(XNStream.VideoCompressorInfo));
this.EncodeComBox.Items.Add(infos[i].szName);
//EncodeComBox为一个COMBox控件,第一项显示正确,之后的就是乱码
}
Marshal.FreeHGlobal(structPtr);
...全文
35 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧