我目前正在設計一個包含實時視頻聊天功能的Metro應用程序框架應用程序。我正在使用MediaCapture樣本中包含的灰度轉換MFT(此時只需從樣本中複製並粘貼)。Metro Style App MFT「Class Not Registered」錯誤
但是,當我嘗試將灰度效果添加到相機的圖像流時,出現「未註冊類」致命錯誤。我理解這是因爲我必須「激活並註冊」媒體擴展,但我不知道如何。 如何註冊媒體擴展?
所有幫助非常感謝,我始終接受答案!
UPDATE:我的灰階IDL文件如下所示:
import "Windows.Media.idl";
#include <sdkddkver.h>
namespace GrayscaleTransform
{
[version(NTDDI_WIN8), activatable(NTDDI_WIN8)]
runtimeclass GrayscaleEffect
{
[default] interface Windows.Media.IMediaExtension;
}
}
通常不需要手動編輯擴展:如果您有對項目或擴展SDK的引用,構建會自動爲引用的項目或擴展SDK中的每個可激活類添加擴展元素。這裏的問題似乎是MediaExtensions類沒有在IDL中使用[activatable]進行註釋,所以它們在各自的WinMD中不會被賦予ActivatableAttribute。這有點奇怪。 – 2012-07-31 01:19:51
儘管這個解決方案能夠工作,但我似乎很奇怪,我需要直接編輯清單文件才能使其工作。如果到那時我還沒有找到更好的解決方案,我明天就會接受這個答案。 – danielmhanover 2012-07-31 14:52:10
我正在嘗試執行相同的任務,但是,我不想擁有額外的DLL(GrayscaleTransform.dll)。所以,我將該dll項目的所有文件複製到我的主dll,但它不起作用。有什麼我需要做的嗎? – Pavel 2013-10-03 15:41:16