dotnet / corert

This repo contains CoreRT, an experimental .NET Core runtime optimized for AOT (ahead of time compilation) scenarios, with the accompanying compiler toolchain.
http://dot.net
MIT License
2.91k stars 510 forks source link

Unsupported marshalling ? #5731

Closed Scellow closed 6 years ago

Scellow commented 6 years ago

I'm getting this:

Unhandled Exception: System.Exception: Method '[CoreCompat.System.Drawing]System.Drawing.GDIPlus.GdipLoadImageFromStream(IStream,native int&)' requires non-trivial marshalling that is not yet supported by this compiler.
   at System.Drawing.GDIPlus.GdipLoadImageFromStream(IStream, IntPtr&) + 0x3e
   at System.Drawing.Image.InitFromStream(Stream) + 0x278
   at System.Drawing.Bitmap..ctor(Stream, Boolean) + 0x35
   at System.Drawing.Bitmap..ctor(Stream) + 0x21
   at Ultraviolet.Shims.NETCore.Graphics.NETCoreSurfaceSource..ctor(Stream) + 0xe1
   at Ultraviolet.Shims.NETCore.NETCoreFactoryInitializer.<>c.<Initialize>b__0_0(Stream) + 0x2d
   at Ultraviolet.Graphics.SurfaceSource.Create(Stream) + 0x68
   at Ultraviolet.Shims.NETCore.Platform.NETCoreIconLoader.LoadIcon() + 0x20b
   at Ultraviolet.SDL2.Platform.SDL2UltravioletWindow.LoadDefaultWindowIcon(UltravioletContext) + 0x5b
   at Ultraviolet.SDL2.Platform.SDL2UltravioletWindow.<>c.<.cctor>b__148_0(UltravioletContext) + 0x20
   at Ultraviolet.UltravioletSingleton`1.InitializeResource() + 0xe5
   at Ultraviolet.UltravioletSingleton`1.get_Value() + 0x1d
   at Ultraviolet.SDL2.Platform.SDL2UltravioletWindow..ctor(UltravioletContext, IntPtr, Boolean) + 0xaf
   at Ultraviolet.SDL2.Platform.SDL2UltravioletWindowInfo.InitializePrimaryWindow(UltravioletConfiguration, SDL2PlatformConfiguration) + 0x466
   at Ultraviolet.SDL2.Platform.SDL2UltravioletWindowInfo..ctor(UltravioletContext, UltravioletConfiguration, SDL2PlatformConfiguration) + 0xb7
   at Ultraviolet.SDL2.Platform.SDL2UltravioletWindowInfoOpenGL..ctor(UltravioletContext, UltravioletConfiguration, SDL2PlatformConfiguration) + 0x2e
   at Ultraviolet.SDL2.SDL2UltravioletPlatform..ctor(UltravioletContext, UltravioletConfiguration, SDL2PlatformConfiguration) + 0x9f
   at Ultraviolet.OpenGL.OpenGLUltravioletContext..ctor(IUltravioletHost, OpenGLUltravioletConfiguration) + 0x287
   at UvDebug.Game.OnCreatingUltravioletContext() + 0x135
   at Ultraviolet.UltravioletContext.EnsureSuccessfulCreation(Func`1) + 0x3e0
   at Ultraviolet.UltravioletApplication.CreateUltravioletContext() + 0x53
   at Ultraviolet.UltravioletApplication.Run() + 0x56
   at UvDebug.Game.Main(String[]) + 0x3e
   at UvDebug!<BaseAddress>+0x96ce3e
   at UvDebug!<BaseAddress>+0x96cecb

Using this library: https://www.nuget.org/packages/CoreCompat.System.Drawing.v2/5.2.0-preview1-r131

jkotas commented 6 years ago

IStream

This requires COM interop.

jkotas commented 6 years ago

We do not have any COM interop support in CoreRT today.

Duplicate of https://github.com/dotnet/corert/issues/4219