Phrynohyas / eve-o-preview

An EVE client window switcher tool created to aid playing with multiple clients in CCP game EVE Online
https://forums.eveonline.com/t/eve-o-preview/4202
MIT License
293 stars 109 forks source link

Linux support ? #157

Closed bc1bb closed 4 years ago

bc1bb commented 4 years ago

Hi, do you have Linux support in mind ? For now with mono on Linux directly i get this error: (IIRC, winforms is installed)

jusdepatate@:~$ mono EVE-O\ Preview.exe 
Invalid type EveOPreview.Services.ThumbnailManager for instance field EveOPreview.Services.ThumbnailManager+<>c__DisplayClass34_0:<>4__this

jusdepatate@:~$ cat EVE-O\ Preview.log
System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
  at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (System.Reflection.Assembly,bool)
  at System.Reflection.Assembly.GetTypes () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 
  at System.Reflection.Assembly+<>c__Iterator0.MoveNext () [0x00021] in <8f2c484307284b51944a1a13a14c0266>:0 
  at EveOPreview.LightInjectContainer.Register (System.Type serviceType, System.Reflection.Assembly container) [0x000b1] in <9728b9a28e924665ba0d720524ef648e>:0 
  at EveOPreview.LightInjectContainer.Register[TService] () [0x0001a] in <9728b9a28e924665ba0d720524ef648e>:0 
  at EveOPreview.Program.InitializeApplicationController () [0x0001c] in <9728b9a28e924665ba0d720524ef648e>:0 
  at EveOPreview.Program.Main () [0x0001c] in <9728b9a28e924665ba0d720524ef648e>:0 

While running with CCP's wine (wine4.4-staging) and "classic" wine (wine5.5-staging), it runs but doesn't detect any client (command looked like this: WINEPREFIX="$HOME/.eve/wineenv" $HOME/.eve/wine/bin/wine EVE-O\ Preview.exe)

You could try to port your code into .NET Core which is open source & runs on Linux natively, but I'm not sure how it would run as System.Reflection is marked as partially unsupported but it looks like you don't use unsupported APIs with EVE-O.

Also I love your software :D.

Phrynohyas commented 4 years ago

Hello

Nope. This is not a question of Mono or .NET Core. The thing is that EVE-O Preview relies on Windows API called DWM. This API is not implemented in Wine (last time I checked these API method's code contained only comment "not implemented yet")