Example #1
0
        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);
        }
Example #2
0
        //代理连接,返回值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);
            }
        }