[Mono-list] Help in dealing with Mono/.NET PInvoke issue
Miguel de Icaza
miguel at novell.com
Fri Jan 8 16:36:51 EST 2010
Hello,
> I've just checked-in the code that contains this project, so now all
> relevant source code is on the O2Platform sourcecode
You will likely need to find an alternative to this widget (the
DockPanel) as the code has some 24 P/Invokes, and chances are that the
code depends on those calls to provide the functionality.
>
>
> Here is the list of the PInvokes that (I think) are causing the
> problem
> * Win32 Native
> methods: http://code.google.com/p/o2platform/source/browse/trunk/SourceCode_3rdParty_Dlls/DockPanel/WinFormsUI/Docking/Win32/NativeMethods.cs
> * Win32
> Enums: http://code.google.com/p/o2platform/source/browse/trunk/SourceCode_3rdParty_Dlls/DockPanel/WinFormsUI/Docking/Win32/Enums.cs
> To easily replicate this, please use this project
> http://code.google.com/p/o2platform/source/browse/trunk/O2%20-%20All%
> 20Active%20Projects/O2Core/O2/O2.sln since it only loads up that GUI
> and when executed (OSx 10.6) throws this error message:
>
>
> Unhandled Exception: System.DllNotFoundException: user32.dll
> at (wrapper managed-to-native)
> WeifenLuo.WinFormsUI.Docking.NativeMethods:SetWindowsHookEx
> (WeifenLuo.WinFormsUI.Docking.Win32.HookType,WeifenLuo.WinFormsUI.Docking.NativeMethods/HookProc,intptr,int)
> at WeifenLuo.WinFormsUI.Docking.DockPanel+FocusManagerImpl
> +LocalWindowsHook.Install () [0x00021]
> in /Users/.../Projects/SourceCode_3rdParty_Dlls/DockPanel/WinFormsUI/Docking/DockPanel.FocusManager.cs:91
> at WeifenLuo.WinFormsUI.Docking.DockPanel+FocusManagerImpl..ctor
> (WeifenLuo.WinFormsUI.Docking.DockPanel dockPanel) [0x00087]
> in /Users/.../Projects/SourceCode_3rdParty_Dlls/DockPanel/WinFormsUI/Docking/DockPanel.FocusManager.cs:130
> at (wrapper remoting-invoke-with-check)
> WeifenLuo.WinFormsUI.Docking.DockPanel/FocusManagerImpl:.ctor
> (WeifenLuo.WinFormsUI.Docking.DockPanel)
> at WeifenLuo.WinFormsUI.Docking.DockPanel..ctor () [0x000c8]
> in /Users/.../Projects/SourceCode_3rdParty_Dlls/DockPanel/WinFormsUI/Docking/DockPanel.cs:44
> at (wrapper remoting-invoke-with-check)
> WeifenLuo.WinFormsUI.Docking.DockPanel:.ctor ()
> at
> O2.External.WinFormsUI.Forms.O2GuiWithDockPanel.InitializeComponent ()
> [0x00000] in /Users/.../Projects/O2 - All Active Projects/O2 Modules
> Using 3rd Party
> Dlls/O2_External_WinFormsUI/Forms/O2GuiWithDockPanel.Designer.cs:32
> at O2.External.WinFormsUI.Forms.O2GuiWithDockPanel..ctor ()
> [0x0000d] in /Users/.../Projects/O2 - All Active Projects/O2 Modules
> Using 3rd Party
> Dlls/O2_External_WinFormsUI/Forms/O2GuiWithDockPanel.cs:24
> at (wrapper remoting-invoke-with-check)
> O2.External.WinFormsUI.Forms.O2GuiWithDockPanel:.ctor ()
> at
> O2.External.WinFormsUI.O2Environment.O2DockPanel.getO2GuiWithDockPanel
> () [0x0000a] in /Users/.../Projects/O2 - All Active Projects/O2
> Modules Using 3rd Party
> Dlls/O2_External_WinFormsUI/O2Environment/O2DockPanel.cs:87
> at
> O2.External.WinFormsUI.O2Environment.O2DockPanel.addControlToO2GuiWithDockPanelSync (O2.External.WinFormsUI.O2Environment.O2DockContent controlToAdd) [0x00020] in /Users/.../Projects/O2 - All Active Projects/O2 Modules Using 3rd Party Dlls/O2_External_WinFormsUI/O2Environment/O2DockPanel.cs:99
> at
> O2.External.WinFormsUI.O2Environment.O2DockPanel.addControlsToFormAndStartIt (IEnumerable`1 controlsToAdd) [0x00013] in /Users/.../Projects/O2 - All Active Projects/O2 Modules Using 3rd Party Dlls/O2_External_WinFormsUI/O2Environment/O2DockPanel.cs:159
> at
> O2.External.WinFormsUI.O2Environment.O2DockPanel.openO2DockContentInNewDockPanel (System.Collections.Generic.List`1 controlsToLoad) [0x00010] in /Users/.../Projects/O2 - All Active Projects/O2 Modules Using 3rd Party Dlls/O2_External_WinFormsUI/O2Environment/O2DockPanel.cs:76
> at O2.External.WinFormsUI.O2Environment.O2DockPanel..ctor ()
> [0x00006] in /Users/.../Projects/O2 - All Active Projects/O2 Modules
> Using 3rd Party
> Dlls/O2_External_WinFormsUI/O2Environment/O2DockPanel.cs:20
> at O2.External.WinFormsUI.Forms.O2AscxGUI.<launch>m__8 () [0x00000]
> in /Users/.../Projects/O2 - All Active Projects/O2 Modules Using 3rd
> Party Dlls/O2_External_WinFormsUI/Forms/O2AscxGUI.cs:43
> at O2.DotNetWrappers.DotNet.O2Thread
> +<staThread>c__AnonStorey9.<>m__B () [0x00000]
> in /Users/.../Projects/O2 - All Active
> Projects/O2Core/O2_DotNetWrappers/DotNet/O2Thread.cs:34
> The application was terminated by a signal: SIGHUP
>
>
>
>
> Thanks
>
>
> Dinis Cruz
>
> 2010/1/4 Chris Howie <cdhowie at gmail.com>
> > I just wrote a blog post about the problem I currently have
> >
> (see http://diniscruz.blogspot.com/2010/01/o2-on-mono-monodevelop-and-osx.html),
> > which seems to be a variation of one you have seen several
> times in the
> > past: "Unhandled Exception: System.DllNotFoundException:
> user32.dll"
>
>
> This means that your platform is invoking one of Windows'
> native
> libraries. You need to figure out how to perform the
> equivalent call
> on Linux or OS X. Note that there may be a framework method
> for what
> you are trying to do, and you should use it if that is the
> case.
>
> Without knowing which P/Invoke call you are making it's not
> possible
> to tell if this is fixable.
>
> --
> Chris Howie
> http://www.chrishowie.com
> http://en.wikipedia.org/wiki/User:Crazycomputers
>
>
> _______________________________________________
> Mono-list maillist - Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
More information about the Mono-list
mailing list