libimobiledevice-win32 / imobiledevice-net

.NET (C#, VB.NET,...) bindings for libimobiledevice
GNU Lesser General Public License v2.1
299 stars 77 forks source link

Can't reboot device, can't convert to System.IntPtr #158

Open WHots opened 4 years ago

WHots commented 4 years ago

devicegeneral.diagnostics_relay_client_new(devicehandle, lockdownServiceDescriptorHandle,out diagnosticsRelayClientHandle); devicegeneral.diagnostics_relay_restart(diagnosticsRelayClientHandle,(DiagnosticsRelayAction)2); devicegeneral.diagnostics_relay_goodbye(diagnosticsRelayClientHandle);

devicegeneral.diagnostics_relay_client_free(diagnosticsRelayClientHandle); [Error here]

the parameter says "IntPtr client" but my best guess is that it's diagnosticsRelayClientHandle.. but that is wrong.

So what exactly works here?

qmfrederik commented 3 years ago

diagnosticsRelayClientHandle.Dispose() will call diagnostics_relay_client_free for you (via ReleaseHandle), so consider something like this:

devicegeneral.diagnostics_relay_client_new(devicehandle, lockdownServiceDescriptorHandle,out diagnosticsRelayClientHandle);
using (diagnosticsRelayClientHandle)
{
  devicegeneral.diagnostics_relay_restart(diagnosticsRelayClientHandle,(DiagnosticsRelayAction)2);
  devicegeneral.diagnostics_relay_goodbye(diagnosticsRelayClientHandle);
}