public int[] m_nDynDates; //动态日期 public object Clone() { TDBLoginResult res = new TDBLoginResult(); res.m_strInfo = m_strInfo; if (m_strMarkets.Length > 0) { res.m_strMarkets = new string[m_strMarkets.Length]; System.Array.Copy(m_strMarkets, res.m_strMarkets, m_strMarkets.Length); } else { res.m_strMarkets = new string[0]; } if (m_nDynDates.Length > 0) { res.m_nDynDates = new int[m_nDynDates.Length]; System.Array.Copy(m_nDynDates, res.m_nDynDates, m_nDynDates.Length); } else { res.m_nDynDates = new int[0]; } return(res); }
//代理连接,返回值TDB_SUCCESS表示成功 public TDBErrNo ConnectProxy(out TDBLoginResult tdbLoginResult) { //重复登录处理 if ((UInt64)m_hTdb != 0) { tdbLoginResult = (TDBLoginResult)m_loginResult.Clone(); Console.WriteLine("已经登录,登录信息:{0}", tdbLoginResult.m_strInfo); return(TDBErrNo.TDB_SUCCESS); } LibTDBWrap.OPEN_SETTINGS openSettings = new LibTDBWrap.OPEN_SETTINGS(); openSettings.szIP = LibWrapHelper.String2AnsiArr(m_strIP, 24); openSettings.szPort = LibWrapHelper.String2AnsiArr(m_strPort, 8); openSettings.szUser = LibWrapHelper.String2AnsiArr(m_strUser, 32); openSettings.szPassword = LibWrapHelper.String2AnsiArr(m_strPassword, 32); LibTDBWrap.TDB_Proxy_SETTINGS proxySetting = new LibTDBWrap.TDB_Proxy_SETTINGS(); proxySetting.szProxyHostIp = LibWrapHelper.String2AnsiArr(m_strProxyIp, 64); proxySetting.szProxyPort = LibWrapHelper.String2AnsiArr(m_strProxyPort, 8); proxySetting.szProxyUser = LibWrapHelper.String2AnsiArr(m_strProxyUser, 32); proxySetting.szProxyPwd = LibWrapHelper.String2AnsiArr(m_strProxyPwd, 32); proxySetting.nProxyType = m_nProxyType; openSettings.nTimeOutVal = m_nTimeOutVal; openSettings.nRetryCount = m_nRetryCount; openSettings.nRetryGap = m_nRetryGap; IntPtr pUnmanagedOpenSettings = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(LibTDBWrap.OPEN_SETTINGS))); Marshal.StructureToPtr(openSettings, pUnmanagedOpenSettings, false); IntPtr pUnmanagedProxySettings = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(LibTDBWrap.TDB_Proxy_SETTINGS))); Marshal.StructureToPtr(proxySetting, pUnmanagedProxySettings, false); IntPtr pUnmanagedLoginRes = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(LibTDBWrap.TDBDefine_ResLogin))); m_hTdb = LibTDBWrap.TDB_OpenProxy(pUnmanagedOpenSettings, pUnmanagedProxySettings, pUnmanagedLoginRes); LibTDBWrap.TDBDefine_ResLogin loginRes = (LibTDBWrap.TDBDefine_ResLogin)Marshal.PtrToStructure(pUnmanagedLoginRes, typeof(LibTDBWrap.TDBDefine_ResLogin)); Marshal.FreeHGlobal(pUnmanagedOpenSettings); Marshal.FreeHGlobal(pUnmanagedProxySettings); Marshal.FreeHGlobal(pUnmanagedLoginRes); m_loginResult = new TDBLoginResult(); m_loginResult.FromAPILoginResult(loginRes); tdbLoginResult = (TDBLoginResult)m_loginResult.Clone(); if ((UInt64)m_hTdb != 0) { return(TDBErrNo.TDB_SUCCESS); } else { return(TDBErrNo.TDB_OPEN_FAILED); } }