public CallResult <string[]> UnSubscribe(string[] codes) { string str = ""; if (codes != null && codes.Length > 0) { foreach (var s in codes) { str += s + ","; } } IntPtr r = TqapiDll.dapi_unsubscribe(handle, str); var cr = Marshal.PtrToStructure <TqapiDll.CallResultWrap>(r); CallResult <string[]> ret; if (cr.value_type != 0) { ret = new CallResult <string[]>(TqapiDll.CopyArray <string>(cr)); } else { ret = new CallResult <string[]>(cr.msg); } TqapiDll.destroy_callresult(r); return(ret); }