Название «Маршал» не существует в текущем контексте - PullRequest
1 голос
/ 03 июля 2010

Я получил приведенный ниже код из примера 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
Ошибка 2 Имя «Маршал» не существует в текущем контексте Form1.cs
Ошибка 3 Имя «Form1_ResizeMove» не существует в текущем контексте Form1.cs
Ошибка 4 Имя «Form1_Paint» не существует в текущем контексте Form1.cs
Ошибка 5 Имя «Form1_ResizeMove» не существует в текущем контексте Form1.cs
Ошибка 6 Имя «Form1_ResizeMove» не существует в текущем контексте Form1.cs
Ошибка 7 Имя 'SystemEvents_DisplaySettingsChanged' не существует в текущем контексте Form1.cs
Ошибка 10 Имя «Form1_ResizeMove» не существует в текущем контексте Form1.cs
Ошибка 11 Имя 'SystemEvents_DisplaySettingsChanged' не существует в текущем контексте Form1.cs


Любая помощь приветствуется.

Спасибо.

Ответы [ 2 ]

10 голосов
/ 03 июля 2010

Класс Marshal находится в пространстве имен System.Runtime.InteropServices. У вас есть соответствующая директива using?

using System.Runtime.InteropServices;

Что касается других ошибок - у вас есть эти методы в вашем классе? Если нет, удалите строки, которые пытаются подписать обработчики событий для них ...

0 голосов
/ 10 января 2019

открытый статический класс Marshal является членом System.Runtime.InteropServices

Вы просто должны добавить:

с использованием System.Runtime.InteropServices; в этом файле .cs

...