[Mono-dev] DirectShow.NET implementation on MONO

Rolf Bjarne Kvinge rolflists at ya.com
Mon Jul 23 07:06:07 EDT 2007



>From: mono-devel-list-bounces at lists.ximian.com
[mailto:mono-devel-list-bounces at lists.ximian.com] On Behalf Of Abir
Bhattacharya
>Sent: lunes, 23 de julio de 2007 12:40
>To: mono-devel-list at lists.ximian.com
>Subject: [Mono-dev] DirectShow.NET implementation on MONO
>
>Hi, 
>
>Recently I am trying to port one of my WinForm Application to MONO , I have
used MS DirectShow.NET quite extensively in the project. I did do a
compatibility test on the DirectShowLib2005.dll and found that more or less
all the >methods and props is MONO Compatible.
>
>However when I try running the pllication on MONO I get the following error
: 
>
>System.DllNotFoundException: ole32.dll
>  at (wrapper managed-to-native) System.__ComObject:CoInitialize (intptr)
>  at System.__ComObject..ctor () [0x00000] 
>  at (wrapper cominterop) DirectShowLib.CreateDevEnum:.ctor ()
>  at (wrapper cominterop-invoke) DirectShowLib.CreateDevEnum:.ctor ()
>  at (wrapper remoting-invoke-with-check) DirectShowLib.CreateDevEnum:.ctor
()
>  at DirectShowLib.DsDevice.GetDevicesOfCat (Guid FilterCategory) [0x00000]

>  at MonoConsumer.Video..ctor (Int32 iDeviceNum, Int32 Height, Int32 Width,
Int16 iBPP, System.Windows.Forms.Control hControl) [0x00000] 
>  at MonoConsumer.Form1.button1_Click (System.Object sender,
System.EventArgs e) [0x00000] 
>  at (wrapper delegate-invoke)
System.MulticastDelegate:invoke_void_object_EventArgs
(object,System.EventArgs)
>  at System.Windows.Forms.Control.OnClick (System.EventArgs e) [0x00000] 
>  at System.Windows.Forms.Button.OnClick (System.EventArgs e) [0x00000] 
>  at System.Windows.Forms.ButtonBase.OnMouseUp
(System.Windows.Forms.MouseEventArgs mevent) [0x00000] 
>  at System.Windows.Forms.Button.OnMouseUp
(System.Windows.Forms.MouseEventArgs e) [0x00000] 
>  at System.Windows.Forms.Control.WmLButtonUp
(System.Windows.Forms.Message& m) [0x00000] 
>  at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m)
[0x00000] 
>  at System.Windows.Forms.ButtonBase.WndProc (System.Windows.Forms.Message&
m) [0x00000] 
>  at System.Windows.Forms.Button.WndProc (System.Windows.Forms.Message& m)
[0x00000] 
>  at System.Windows.Forms.Control+ControlWindowTarget.OnMessage
(System.Windows.Forms.Message& m) [0x00000] 
>  at System.Windows.Forms.Control+ControlNativeWindow.WndProc
(System.Windows.Forms.Message& m) [0x00000] 
>  at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg,
IntPtr wParam, IntPtr lParam) [0x00000]
>
>I am at a loss as I do not have any prior knowledge on working on this
platform.
>

DirectShow is a MS technology, and will not work on Linux nor any other
non-MS platforms [1]. DirectShow.Net is just a managed wrapper around the
native DirectShow dlls found in Windows. I think you'll have to remove all
DirectShow code in your application for it to run on Mono.

Rolf

[1] With Wine it might, but currently Wine doesn't work well with Mono,
although somebody within Wine is working on improving that I think.

-- Visit us at http://www.2pirad.com/ --





More information about the Mono-devel-list mailing list