我正在編寫一個小型應用程序,它將用戶圖片打印在身份證上。我環顧四周,在C#
中發現了很多不同的例子,除了兩個問題,現在在新的.NET
框架中已經過時的UCOM
元素之外,這對我來說是完美的。使用DirectShow過時COMType的編譯器錯誤
這是給出了錯誤代碼:
int hr = devEnum.CreateClassEnumerator(FilterCategory.VideoInputDevice, out classEnum, CDef.None);
這是錯誤的確切寫法:
Error 2 Argument 2: cannot convert from 'out System.Runtime.InteropServices.ComTypes.IEnumMoniker' to 'out System.Runtime.InteropServices.UCOMIEnumMoniker' E:\Programming\Application Files\WebCamControl2\WebCamControl2.cs 108 89 WebCamControl2
我使用的是DirectShow的DLL,它上次於2005年使用它使用分別被更改爲IEnumMoniker
和IMoniker
的和UCOMIMoniker
。
我該如何解決這個編譯錯誤?我是否可以將舊類型轉換爲舊類型,即使它已經過時,還是必須廢除使用DirectShow庫的想法?
。異常告訴你他們沒有改變。您仍在使用舊的DLL。如果您不知道這是如何發生的,請使用Fuslogvw.exe並記錄所有綁定。注意它在GAC中,忘記增加[AssemblyVersion]。 –