使用VLC 製作ActiveX控制項

2021-06-17 23:05:29 字數 1275 閱讀 9215

在使用vlc自帶的 libvlc.dll 和 libvlccore.dll 來製作activex控制項時,遇到一些問題,由於vlc提供是非託管的dll,所在c#呼叫時,需要用如下語句進行引入:

(當然了,首先要把這兩個dll和plugins資料夾,拷備到專案的debug資料夾下,

// 建立乙個libvlc例項,它是引用計數的

[dllimport("libvlc", callingconvention =callingconvention.stdcall, exactspelling =true)]

[suppressunmanagedcodesecurity]

private

static

extern

intptr libvlc_new(int argc,intptr argv);

但是在執行時,當呼叫該dll中的方法時,就會報錯:

---------------------------

使用者控制項測試容器

---------------------------

未能建立 usercontrol「*******activex.*******activex」

錯誤資訊是「試圖載入格式不正確的程式。 (異常來自 hresult:0x8007000b)」

提示格式不正確,首先想到可能的原因是64位系統編譯的問題,將專案的目標平台改為了 x86,結果又報新的錯誤:

未能載入檔案或程式集「file://\**********activex\obj\x86\debug\*******activex.dll」或它的某乙個依賴項。試圖載入格式不正確的程式。

(在 obj\x86\debug\ 資料夾下放置dll和plugins還是不行)

還是不能正常呼叫!

百思不得其解,不過肯定是系統環境和dll不相容,嘗試降低了乙個vlc版本(v 1.1.11),將v 1.1.11下的兩個dll,和plugins資料夾,拷到了debug資料夾下(xp環境中),問題竟然解決了!!

由些想到,64位的 win8 中,會不會也是這個原因,可惜的是,重新替換了dll和plugins資料夾後,依然報錯!

錯誤資訊是「試圖載入格式不正確的程式。

好在終於有一套可以成功執行的環境了:

xp(32位) + vlc(v 1.1.11)

有遇到類似問題的朋友,可以討論一下!

原始的開發環境如下:

作業系統環境:win8 (64位)

開發環境: vs2010 c#

vlc版本:2.0.8 

vlc 1.1.11 的開發外掛程式,已上傳至: 

vlc的應用之二 vlc的ActiveX及cab

2009 05 14補充 8.activex的解除安裝 9.讓vlc自動安裝activex 10.關於vlc的activex的說明。vlc自帶了activex控制項 axvlc.dll,在編譯完vlc之後的activex資料夾下。activex是個好東西,axvlc.dll可以隨意放到任何位置,成功...

製作activex控制項cab的方法

瀏覽器中使用的activex控制項一般是打包成cab檔案,然後申請證書。測試的時候可以使用一些免費的證書。整個過程用批處理比較方便,把下面存成批處理檔案。inf檔案內容如下 version version signature same for both nt and win95 do not rem...

使用C 開發ActiveX控制項

最近弄了乙個在qt中使用c 控制項的功能,使用的方法是通過c 生產activex控制項,在qt中使用該activex控制項。本文這裡簡單的介紹一下如何用c 生成activex控制項。1.建立winform的usercontrol工程,在控制項的屬性頁中選擇 使程式集com可見 2.分配guid,在控...