我从bitmapmixer示例(DirectShow.NET)获得了下面的代码,我试图重新实现它。原始样本工作正常。在我的版本中,当我尝试编译时,我得到了错误。
private void AddHandlers()
{
// Add handlers for VMR purpose
this.Paint += new PaintEventHandler(Form1_Paint); // for WM_PAINT
this.Resize += new EventHandler(Form1_ResizeMove); // for WM_SIZE
this.Move += new EventHandler(Form1_ResizeMove); // for WM_MOVE
SystemEvents.DisplaySettingsChanged += new EventHandler(SystemEvents_DisplaySettingsChanged); // for WM_DISPLAYCHANGE
handlersAdded = true;
}
private void RemoveHandlers()
{
// remove handlers when they are no more needed
handlersAdded = false;
this.Paint -= new PaintEventHandler(Form1_Paint);
this.Resize -= new EventHandler(Form1_ResizeMove);
this.Move -= new EventHandler(Form1_ResizeMove);
SystemEvents.DisplaySettingsChanged -= new EventHandler(SystemEvents_DisplaySettingsChanged);
}
错误
错误1当前上下文Form1.cs中不存在名称“Marshal” 错误2当前上下文Form1.cs中不存在名称“Marshal” 错误3当前上下文Form1.cs中不存在名称“Form1_ResizeMove” 错误4当前上下文Form1.cs中不存在名称“Form1_Paint” 错误5当前上下文Form1.cs中不存在名称“Form1_ResizeMove” 错误6当前上下文Form1.cs中不存在名称“Form1_ResizeMove” 错误7当前上下文Form1.cs中不存在名称'SystemEvents_DisplaySettingsChanged' 错误10当前上下文Form1.cs中不存在名称“Form1_ResizeMove” 错误11当前上下文Form1.cs中不存在名称'SystemEvents_DisplaySettingsChanged'
感谢任何帮助。
感谢。
答案 0 :(得分:10)
Marshal
类位于System.Runtime.InteropServices
命名空间中。你有一个合适的using
指令吗?
using System.Runtime.InteropServices;
至于其他错误 - 你班上有这些方法吗?如果没有,删除试图为它们订阅事件处理程序的行...
答案 1 :(得分:0)
公共静态类Marshal是System.Runtime.InteropServices的成员
您只需添加:
使用System.Runtime.InteropServices; 在该.cs文件中