Using AxWindowsMediaPlayer control on MONO c# - c#

I try to make a AxWindowsMediaPlayer control on form whit MONO on raspian. It work very well on Windows, but on Raspian I have this error:
"System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Hmi800App.PlayerVideoForm'.
at System.Windows.Forms.Control.CreateHandle () [0x00013] in <28e46de2d20c496895000ef0abfc2106>:0
at System.Windows.Forms.Form.CreateHandle () [0x00000] in <28e46de2d20c496895000ef0abfc2106>:0
at Hmi800App.PlayerVideoForm.InitializeControl (System.String _url, System.Boolean alredySee, System.String DpiDescription, System.String _dpiType) [0x0011e] in <4c680c0bc03a4b558a55ee653edb38ad>:0
It same that handle of control is not created.
Can you halp me?

Related

System.DllNotFoundException: libpcsclite.so.1 assembly:<unknown assembly> type:<unknown type> member:(null)

Researched this issue many times but didn't found solution of it. Working with xamarin forms version 5.0.0.2012, on win 10 os (saw many solutions for mac or linux but didn't found any for windows), using PCSC library version 5.0.0. Trying to invoke context.Establish method while debugging on Android 8.0:
public SimpleReader(ISCardContext context, bool releaseContextOnDispose = false)
{
if (context == null)
{
context = (ISCardContext) new SCardContext();
context.Establish(SCardScope.System);
releaseContextOnDispose = true;
}
this._context = context;
this._reader = (ISCardReader) new SCardReader(context);
this._releaseContextOnDispose = releaseContextOnDispose;
this._disconnectReaderOnDispose = true;
}
When, exception occur with message below:
System.DllNotFoundException: libpcsclite.so.1 assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) PCSC.Interop.Linux.LinuxNativeMethods.SCardEstablishContext(intptr,intptr,intptr,intptr&)
at PCSC.Interop.Linux.PCSCliteLinux.EstablishContext (PCSC.SCardScope dwScope, System.IntPtr pvReserved1, System.IntPtr pvReserved2, System.IntPtr& phContext) [0x00006] in C:\Users\danm\src\pcsc-sharp\src\PCSC\Interop\Linux\PCSCliteLinux.cs:39
at PCSC.SCardContext.Establish (PCSC.SCardScope scope) [0x00020] in C:\Users\danm\src\pcsc-sharp\src\PCSC\SCardContext.cs:81
at App1xx.Services.SimpleReader.SimpleReader..ctor (PCSC.ISCardContext context, System.Boolean releaseContextOnDispose) [0x00023] in C:\Users\vzhynkin\source\repos\App1xx\App1xx\App1xx\Services\SimpleReaderLib\SimpleReader.cs:59
at App1xx.Services.SimpleReader.SimpleReader..ctor () [0x00000] in C:\Users\vzhynkin\source\repos\App1xx\App1xx\App1xx\Services\SimpleReaderLib\SimpleReader.cs:70
at App1xx.Services.UaIdRLib.IdCardReader.connect () [0x00002] in C:\Users\vzhynkin\source\repos\App1xx\App1xx\App1xx\Services\UaIdRLib\IdCardReader.cs:371
at App1xx.Views.AboutPage.OnButtonClicked (System.Object sender, System.EventArgs args) [0x0000f] in C:\Users\vzhynkin\source\repos\App1xx\App1xx\App1xx\Views\AboutPage.xaml.cs:22
at Xamarin.Forms.Button.Xamarin.Forms.Internals.IButtonElement.PropagateUpClicked () [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Button.cs:187
at Xamarin.Forms.ButtonElement.ElementClicked (Xamarin.Forms.VisualElement visualElement, Xamarin.Forms.Internals.IButtonElement ButtonElementManager) [0x0001f] in D:\a\1\s\Xamarin.Forms.Core\ButtonElement.cs:61
at Xamarin.Forms.Button.SendClicked () [0x00000] in D:\a\1\s\Xamarin.Forms.Core\Button.cs:173
at Xamarin.Forms.Platform.Android.ButtonElementManager.OnClick (Xamarin.Forms.VisualElement element, Xamarin.Forms.IButtonController buttonController, Android.Views.View v) [0x00000] in D:\a\1\s\Xamarin.Forms.Platform.Android\ButtonElementManager.cs:25
at Xamarin.Forms.Platform.Android.FastRenderers.ButtonRenderer.Android.Views.View.IOnClickListener.OnClick (Android.Views.View v) [0x00000] in D:\a\1\s\Xamarin.Forms.Platform.Android\FastRenderers\ButtonRenderer.cs:72
at Android.Views.View+IOnClickListenerInvoker.n_OnClick_Landroid_view_View_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_v) [0x00010] in /Users/builder/azdo/_work/278/s/xamarin-android/src/Mono.Android/obj/Release/monoandroid10/android-30/mcw/Android.Views.View.cs:2252
at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.68(intptr,intptr,intptr)
Does anyone faced with this issue?
The PCSC library does not appear to explicitly support Android. In my experience, nugets that work with Xamarin.Android have explicit dependencies set for the platform, but this one does not.
The library tries to use P/Invoke wrappers around native code. You can see that there are implementations for a number of operating systems here, but I don't see any references to Android. The stack trace shows that the code is deciding to use the Linux wrapper, which makes sense. It's looking for the libpcsclite.so.1 native "C/C++" library, but it's not finding it. That library has a home page that does not reference Android.
The PCSC nuget docs state:
pcsc-sharp does not contain any device drivers. A PC/SC compliant
reader + driver is mandatory.
That's the libpcsclite.so.1 . Either your Android device doesn't provide it, or if it does, it's not in a location that your Android app can find it. My Android device (running Android 9) does not have that library in any of /system/*lib* directories, which means that at least for my device someone would need to compile that native library for the CPU (usually arm64) for the device. If you can either compile the native code yourself or find someone who has, AND the native code supports the reader on your Android device, then you could get the whole thing to work.
I don't have any experience with PCSC myself - just some experience with Xamarin and native libraries.

Fo-dicom code compiling but not executing

I am trying following code to convert a dicom file to jpeg:
using System;
using System.IO;
using System.Drawing;
using Dicom.Imaging;
class RnReadDicom{
public static void Main(string[] args){
string fileName = "33141578.dcm";
var image = new DicomImage(fileName);
image.RenderImage().AsSharedBitmap().Save(#"test.jpg");
}}
I am compiling it with following command:
$ mcs a.cs -r:Dicom.Core.dll -r:Dicom.Native.dll -r:System.Drawing
The code compiles without any error but on running the exe file, it gives following error:
$ ./a.exe
Unhandled Exception:
System.TypeInitializationException: The type initializer for 'Dicom.DicomEncoding' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object
at Dicom.IO.IOManager.get_BaseEncoding () [0x00000] in <4b7c269b3e704f3f83dd85bb2721c76a>:0
at Dicom.DicomEncoding..cctor () [0x00000] in <4b7c269b3e704f3f83dd85bb2721c76a>:0
--- End of inner exception stack trace ---
at Dicom.Imaging.DicomImage..ctor (System.String fileName, System.Int32 frame) [0x00000] in <4b7c269b3e704f3f83dd85bb2721c76a>:0
at RnReadDicom.Main (System.String[] args) [0x00006] in <5c119b113a6e4d4b8058662dd31bab14>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'Dicom.DicomEncoding' threw an exception. ---> System.NullReferenceException: Object reference not set to an instance of an object
at Dicom.IO.IOManager.get_BaseEncoding () [0x00000] in <4b7c269b3e704f3f83dd85bb2721c76a>:0
at Dicom.DicomEncoding..cctor () [0x00000] in <4b7c269b3e704f3f83dd85bb2721c76a>:0
--- End of inner exception stack trace ---
at Dicom.Imaging.DicomImage..ctor (System.String fileName, System.Int32 frame) [0x00000] in <4b7c269b3e704f3f83dd85bb2721c76a>:0
at RnReadDicom.Main (System.String[] args) [0x00006] in <5c119b113a6e4d4b8058662dd31bab14>:0
Where is the problem and how can it be solved? Thanks for your help.
Edit: I am having similar problem with another library for which I have posted another question. This is using a different library and the error is also different. I suspect answers to these questions will be different hence these are not duplicate question. Moreover, the other question does not have any answer yet.
This is probably due to the garbage collector destroying the image object. The Bitmap only contains a reference to the pixel data of the image to save space.
This has been described here before: C# System.Drawing.Image.get_Width() throws exception on WinForms form is maximized
To solve this, use it as this:
var image = new DicomImage(fileName);
image.RenderImage().AsClonedBitmap().Save(#"test.jpg");
By cloning, a real copy of the pixel data is performed.
However, it could be sometimes even trickier: If you e. g. use .NET Core as a starting project and the library, which references fo-dicom uses .NET Standard, you have to add either of these to the start of your program:
TranscoderManager.SetImplementation(new MonoTranscoderManager()); // limited codecs, but full .NET Core, runs on Linux. Or:
TranscoderManager.SetImplementation(new DesktopTranscoderManager()); // loads also native dlls, runs on Windows
ImageManager.SetImplementation(new RawImageManager()); // if you need .NET Core, you only have byte arrays
ImageManager.SetImplementation(new WinFormsImageManager()); //if you run Windows and have GDI
NetworkManager.SetImplementation(new DesktopNetworkManager()); // if you want to run dicom services

DllNotFoundException: TMPro_Plugin, working with TextMesh Pro on linux

I am trying to run font asset creator of TextMesh Pro 1.2.4 on Unity 2018.1.6f1 on Fedora 27. I've got the following errors:
I've heard that TextMesh hasn't been supported on Linux yet. Is it still true?
DllNotFoundException: TMPro_Plugin
TMPro.EditorUtilities.TMPro_FontAssetCreatorWindow.DrawControls () (at
/root/.config/unity3d/cache/packages/packages.unity.com/com.unity.textmeshpro#1.2.4/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs:704)
TMPro.EditorUtilities.TMPro_FontAssetCreatorWindow.OnGUI () (at
/root/.config/unity3d/cache/packages/packages.unity.com/com.unity.textmeshpro#1.2.4/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs:266)
System.Reflection.MonoMethod.Invoke (System.Object obj,
System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder
binder, System.Object[] parameters, System.Globalization.CultureInfo
culture) (at :0) Rethrow as
TargetInvocationException: Exception has been thrown by the target of
an invocation. System.Reflection.MonoMethod.Invoke (System.Object obj,
System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder
binder, System.Object[] parameters, System.Globalization.CultureInfo
culture) (at :0)
System.Reflection.MethodBase.Invoke (System.Object obj,
System.Object[] parameters) (at :0)
UnityEditor.HostView.Invoke (System.String methodName, System.Object
obj) (at
/home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:291)
UnityEditor.HostView.Invoke (System.String methodName) (at
/home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:284)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition) (at
/home/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:257)
UnityEditor.DockArea.OldOnGUI () (at
/home/builduser/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:386)
UnityEngine.Experimental.UIElements.IMGUIContainer.DoOnGUI
(UnityEngine.Event evt) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:234)
UnityEngine.Experimental.UIElements.IMGUIContainer.HandleIMGUIEvent
(UnityEngine.Event e) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:372)
UnityEngine.Experimental.UIElements.IMGUIContainer.HandleEvent
(UnityEngine.Experimental.UIElements.EventBase evt) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:356)
UnityEngine.Experimental.UIElements.EventDispatcher.DispatchEvent
(UnityEngine.Experimental.UIElements.EventBase evt,
UnityEngine.Experimental.UIElements.IPanel panel) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:215)
UnityEngine.Experimental.UIElements.UIElementsUtility.DoDispatch
(UnityEngine.Experimental.UIElements.BaseVisualElementPanel panel) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:224)
UnityEngine.Experimental.UIElements.UIElementsUtility.ProcessEvent
(System.Int32 instanceID, System.IntPtr nativeEventPtr) (at
/home/builduser/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:77)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID,
System.IntPtr nativeEventPtr) (at
/home/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:184)
llNotFoundException: TMPro_Plugin
TMPro.EditorUtilities.TMPro_FontAssetCreatorWindow.OnDisable () (at
/root/.config/unity3d/cache/packages/packages.unity.com/com.unity.textmeshpro#1.2.4/Scripts/Editor/TMPro_FontAssetCreatorWindow.cs:204)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)
The native side of the code required to generate text is not available on Linux yet. The plugin itself should work during run-time in a build but its Editor tool is not supported on Linux. The Editor tool is only supported on Windows and Mac.
The original reason for the lack of support is because only few people use Linux when enveloping games with Unity. Also Unity Editor itself does not support Linux officially. Whatever support they have for it is still in experimental mode and there are many issues that makes it not worth using at this point.
Since TextMesh Pro is now bought by Unity, it's very likely that Linux will be supported. You should wait until Unity finally integrate it with Unity and maybe they will add support for Linux. At this moment, I think you should file for a bug report to remind Unity that this issue is still there then just use the Text component until they fix it. If you still want to use TextMesh Pro, a workaround is to use VMware Workstation to run Windows or MacOS on your Linux then you can use them to create the Text Assets and export and import them as Packages in your Linux project.

Error with Unity iOS compile: Cross Compilation job Mono.WebBrowser.dll failed

have been working on a project intended for iOS deployment. Until recently, we have been building and deploying to our client via webplayer. However, I am now attempting to shift to releasing builds on iOS . But, no matter what I try, when I go to compile the project I receive the following error messages:
Cross compilation job Mono.WebBrowser.dll failed.
UnityEngine.UnityException: Failed AOT cross compiler: /Applications/Unity_45/Unity.app/Contents/PlaybackEngines/iOSSupport/Tools/OSX/mono-xcompiler --aot=full,asmonly,nodebug,static,outfile="Mono.WebBrowser.dll.s" "Mono.WebBrowser.dll" current dir : /Users/admin/Desktop/UI_gg_current/Temp/StagingArea/Data/Managed
Env: Apple_PubSub_Socket_Render = '/tmp/launch-7SV8Ex/Render'
LOGNAME = 'admin'
PATH = '/usr/bin:/bin:/usr/sbin:/sbin'
TMPDIR = '/var/folders/7c/s32nkpmx0yvgw4mmw_5vhxx40000gn/T/'
MONO_PATH = '/Users/admin/Desktop/UI_gg_current/Temp/StagingArea/Data/Managed'
SSH_AUTH_SOCK = '/tmp/launch-wpdtRI/Listeners'
USER = 'admin'
GC_DONT_GC = 'yes please'
Apple_Ubiquity_Message = '/tmp/launch-cfnoHv/Apple_Ubiquity_Message'
SHELL = '/bin/bash'
__CF_USER_TEXT_ENCODING = '0x1F5:0:0'
GAC_PATH = '/Users/admin/Desktop/UI_gg_current/Temp/StagingArea/Data/Managed'
HOME = '/Users/admin'
COMMAND_MODE = 'unix2003'
result file exists: False. Timed out: False
stdout:
stderr:
at UnityEditor.MonoProcessUtility.RunMonoProcess (System.Diagnostics.Process process, System.String name, System.String resultingFile) [0x00000] in <filename unknown>:0
at UnityEditor.MonoCrossCompile.CrossCompileAOT (BuildTarget target, System.String crossCompilerAbsolutePath, System.String assembliesAbsoluteDirectory, CrossCompileOptions crossCompileOptions, System.String input, System.String output, System.String additionalOptions) [0x00000] in <filename unknown>:0
at UnityEditor.MonoCrossCompile+JobCompileAOT.ThreadPoolCallback (System.Object threadContext) [0x00000] in <filename unknown>:0
UnityEditor.HostView:OnGUI()
and
Error building Player: UnityException: Cross compilation failed.
I am using Unity 4.5. To date I have : deleted third party dlls (including xml.linq.dll) , removed any instance of Lambda search operators (=>), and deleted the temp folder because I have seen these approaches used in similar situations (I know some aspects of Linq are not supported in iOS cross compile).
I have looked at similar issues such as this one: http://answers.unity3d.com/questions/439367/cross-compilation-failed-csharpdll.html. But, I am so perplexed, because it isn't the CSharp assembly causing my problem (which means it isn't one of my scripts?) I am not sure why it would even be including a WebBrowser.dll for an iOS build. Any help is greatly appreciated, as I feel I have searched far and wide for a resolution with no luck.
See the resolution that for this question here.

System.EntryPointNotFoundException CreateActCtx error's

I'm trying to make an C# program in mono, so i can port it to Windows, Linux and Mac very easy.
But I've got this error:
System.EntryPointNotFoundException has been thrown
CreateActCtx
System.EntryPointNotFoundException: CreateActCtx
at (wrapper managed-to-native) WebKit.NativeMethods:CreateActCtx (WebKit.NativeMethods/ACTCTX&)
at WebKit.ActivationContext.Initialize () [0x00000] in <filename unknown>:0
at WebKit.WebKitBrowser..ctor () [0x00000] in <filename unknown>:0
at (wrapper remoting-invoke-with-check) WebKit.WebKitBrowser:.ctor ()
at TW_Overview.globalVars..cctor () [0x00000] in <filename unknown>:0
Here is some code:
public static void Main (string[] args)
{
Application.Init ();
MainWindow win = new MainWindow ();
startUp();
win.Show ();
Application.Run ();
}
public static globalFunc globalfunctions = new globalFunc();
public static void startUp ()
{
while (!globalfunctions.isLoggedIn()) {
globalfunctions.showLogin();
}
}
And here's the globalfunc (part of it)
public Boolean isLoggedIn()
{
if (globalVars.isLoggedIn == true)
{
return true;
}
return false;
}
The line that give's the error is:
while (!globalfunctions.isLoggedIn()) {
I've gotten this type of approach in C# Windows Visual Studio, and there it worked. So i don't understand why it isn't working.
Hope that you guys have an clue about what the problem is...
EDIT 1
I've downloaded the latest version of webkit.net link, unpacked it and put all the dllÅ› and folders in the debug folder of my program. I also added an refrence to the dll in the debug folder.
And i've added everywhere this line:
using WebKit;
So i don't know what the problem is. mayby something with static and not static??? i'm not that good at that part...
EDIT 2
The problem is that this isn't supported bij Mono.
After some searching and looking if it's possible to port the webkit to mono, i came across an site that already did that for us.
https://live.gnome.org/WebKitGtk
I cant test it right now, but i think it should work. If not, then i will incontinent searching and update here if i find the solution.

Categories