Windows Media Player Designer View выбрасывает ошибки процессора и lib

1

У меня есть форма под названием VideoForm, у которой есть проигрыватель Windows Media Player.

public AxWMPLib.AxWindowsMediaPlayer player;

Когда я открываю VideoFrame.cs [Design], я получаю две ошибки:

Не удалось найти тип 'AxWMPLib.AxWindowsMediaPlayer'

Переменная "игрок" либо не объявлена, либо никогда не была назначена.

Если я создам новую форму в своем решении и попытаюсь добавить к ней проигрыватель Windows Media, я получаю эту ошибку:

Не удалось создать компонент "AxHost". Появляется сообщение об ошибке: "System.Reflection.ReflectionTypeLoadException: невозможно загрузить один или несколько запрошенных типов.

(с тонны типов, перечисленных ниже, в основном в зависимости от того, "что инструмент должен сделать для контроля")

Я попытался: перезапустить Visual Studio, перезагрузить компьютер, удалить и повторно импортировать библиотеки, переключиться на 32, создать, затем вернуться к 64 и снова создать и вручную найти файлы lib на моей машине.

Но вот странно part-, если я закрою это решение, откройте другое, добавьте проигрыватель Windows Media, скомпилируйте его до 64 бит, затем закройте и снова откройте оригинальное решение. Я не получаю ошибки!
EDIT: При попытке вышеперечисленного "взломать" я получаю следующие две ошибки:

Предупреждение Обработка COM-ссылки "WMPLib" из пути "C:\Windows\system32\wmp.dll". Импортер библиотеки типов обнаружил свойство getter 'sessionPlaylistCount' в типе 'WMPLib.IWMPNowPlayingHelperDispatch' без допустимого типа возврата. Импортер попытается импортировать это свойство как метод вместо этого.

    and 

Обработка COM-ссылки "WMPLib" из пути "C:\Windows\system32\wmp.dll". По крайней мере один из аргументов для "IWMPGraphEventHandler.NotifyAcquireCredentials" не может быть маршалирован маршалером времени исполнения. Поэтому такие аргументы будут переданы как указатель и могут потребовать манипулирования небезопасным кодом.

Я думаю, что у меня происходит утечка памяти, но я в недоумении, и я ничего не вижу во время выполнения ни в потоках, ни в потоках Threads, ни в GPU.

Я не считаю, что это мой код вызывает это, однако, если вы хотите увидеть комментарий к коду, и я добавлю соответствующие части.

  • 1
    Я полагаю, что ответ Ханса Пассанта хорошо объясняет проблему. Я сталкивался с тем же.
  • 0
    @Meloviz Я больше не работаю в этом проекте и у меня нет кода для тестирования, но я согласен, этот ответ выглядит вполне разумным, и если вы скажете, что он сработал для вас, держу пари, что он сработает для меня.
Теги:
memory-leaks
windows-forms-designer
wmp

1 ответ

1
Лучший ответ

Я нашел решение этой проблемы:

{
Warning 1 Processing COM reference "WMPLib" from path "C:\Windows\system32\wmp.dll". Type library importer encountered a property getter 'sessionPlaylistCount' on type 'WMPLib.IWMPNowPlayingHelperDispatch' without a valid return type. The importer will attempt to import this property as a method instead.

Warning 2 Processing COM reference "WMPLib" from path "C:\Windows\system32\wmp.dll". At least one of the arguments for 'IWMPGraphEventHandler.NotifyAcquireCredentials' cannot be marshaled by the runtime marshaler. Such arguments will therefore be passed as a pointer and may require unsafe code to manipulate.
}

я должен отредактировать свое слово! Если вы получите эту ошибку, это не означает, что ваше приложение не будет работать. Но если вы скомпилируете свою программу, не запускайте файл установки в старой Windows. Вы можете установить следующее: установить ракурс вашей программы на 4 клиентскую версию и установить платформу программы для X86 и создайте свой установщик на клиенте Framework 4

  • 0
    Я понятия не имею, является ли это решением или нет - у меня больше нет доступа к этому проекту, платформе, коду и т. Д. В любом случае, я приму ваш ответ, но не могу сказать, что действительно знаю, правы вы или нет ,

Ещё вопросы

Сообщество Overcoder
Наверх
Меню