public static bool Combo(string label, ref int current_item, string[] items, int popup_max_height_in_items = -1) { using CStringArray strArr = stackalloc IntPtr[items.Length]; for (int i = 0; i < items.Length; i++) { strArr[i] = StringHelper.ToPtr(items[i]); } return(ComboStr_arr(label, ref current_item, (byte **)strArr.Ptr, items.Length, popup_max_height_in_items)); }
public static bool ListBox(string label, ref int current_item, string[] items, int items_count, int height_in_items = -1) { using CStringArray strArr = stackalloc IntPtr[items.Length]; for (int i = 0; i < items.Length; i++) { strArr[i] = StringHelper.ToPtr(items[i]); } return(ListBoxStr_arr(label, ref current_item, (byte **)strArr.Ptr, items_count, height_in_items)); }
public object MarshalNativeToManaged(IntPtr pNativeData) { CStringArray arr = (CStringArray)Marshal.PtrToStructure(pNativeData, typeof(CStringArray)); string[] managedStringArray = new string[arr.len]; IntPtr[] pIntPtrArray = new IntPtr[arr.len]; Marshal.Copy(arr.stringArray, pIntPtrArray, 0, arr.len); for (int i = 0; i < arr.len; i++) { managedStringArray[i] = Marshal.PtrToStringAnsi(pIntPtrArray[i]); } return(managedStringArray); }
/// <summary> Specialised default constructor for use only by derived class. </summary> protected unsafe QApp(IReadOnlyCollection <string> opts) { argc = opts.Count; char **argv = null; if (opts.Count > 0) { // Convert the string list to a C String Array COpts = new CStringArray(opts); COpts.Alloc(); argv = (char **)COpts.Address(); } _QApplication = new QApplication(ref argc, argv); }
public void CleanUpNativeData(IntPtr pNativeData) { CStringArray arr = (CStringArray)Marshal.PtrToStructure(pNativeData, typeof(CStringArray)); IntPtr[] pIntPtrArray = new IntPtr[arr.len]; Marshal.Copy(arr.stringArray, pIntPtrArray, 0, arr.len); for (int i = 0; i < arr.len; i++) { Marshal.FreeCoTaskMem(pIntPtrArray[i]); } if (arr.len > 0) { Marshal.FreeCoTaskMem(arr.stringArray); } Marshal.FreeCoTaskMem(pNativeData); }
protected virtual void Dispose(bool disposing) { if (disposed) { return; } if (disposing) { // Free other state (managed objects). _QApplication.Dispose(); } // Free your own state (unmanaged objects). // Set large fields to null. //COpts.DeAlloc(); COpts = null; _QApplication = null; disposed = true; }
internal static extern SNIPS_RESULT snips_nlu_engine_run_parse_into_json(IntPtr client, string input, CStringArray intents_whitelist, CStringArray intents_blacklist, ref string result_json);