資訊系統/架構/產品‎ > ‎KGQ‎ > ‎GMDS相關文章‎ > ‎GMDS‎ > ‎

DbfTCdll2.dll 範例程式碼 APITEST

張貼者:2011年1月16日 上午6:26Wei-Xiuang Wang   [ 已更新 2011年2月11日 上午9:46 ]

取得壓縮包解壓後, 會有以下內容
DbfTCdll2.dll 為API動態聯結程式庫
DbfTCdll2.h 為C++標頭檔,C++程式可直接include,其他程式(.Net,C#,VB,..)則可參考作對應宣告
標頭檔內所有提供之API附有繁體中文功能說明

<src> 提供實際程式範例6個,皆可直接適用於 VC, DevC, wxDevC, BCB, CodeGear
程式內容含有繁體中文細部說明, 建議參考順序為
-QueueMode , -BackupMode , -CB-Demo , -CB-Tick , -CB-MyTag , -CB-Quote

<bin> 用來作為編譯輸出路徑

<VC6> 為直接可以調用之VC6專案, VS8/VS9/VS10可直接升級專案

其它專案建立可以參考 C++專案建立範例
API含有資料處理用的Quote Manager與對應的範例,可參考 DbfTC API - Quote Manager

由於Server端是可以有權限控管的,因此相同Account只能建立一個連線,
因此若欲同時嘗試多個Client連線測試,於 fnDbfTCdll_InitUser 呼叫時須指定不一樣的User Account,
以機房端的接收設計,一般建議可以用應用程式的名稱與版本或是以主機的HOST名稱作為Account內容

相同API, 於C#之參考範例

[DllImport("DbfTCdll2.dll")]

        private static extern long fnDbfTCdll_SelectDataSet(string cpDataSetString);

        [DllImport("DbfTCdll2.dll")]

        private static extern bool fnDbfTCdll_InitUser(string cpUserString);

        [DllImport("DbfTCdll2.dll")]

        private static extern bool fnDbfTCdll_Start(string cpHostString);

        [DllImport("DbfTCdll2.dll")]

        private static extern void fnDbfTCdll_Stop();

 

        [DllImport("DbfTCdll2.dll")]

        private static extern int fnDbfTCdll_PeekPacketLen();

        [DllImport("DbfTCdll2.dll")]

        private static extern int fnDbfTCdll_PeekPacket(string vpBuf, int iBufSize);

        [DllImport("DbfTCdll2.dll")]

        private static extern int fnDbfTCdll_RecvPacket(StringBuilder vpBuf, int iBufSize);

 

        private void button1_Click(object sender, EventArgs e)

        {

            bool a;

            fnDbfTCdll_SelectDataSet("0x6816=KGQ");

            a = fnDbfTCdll_InitUser("demo-cs");

            if (fnDbfTCdll_Start("127.0.0.1:32128"))

            {

                Thread.Sleep(1000);

                int iPktLen, count = 0;

                StringBuilder caPktBuf=new StringBuilder(4096);

               

                     while (true)

                     {

                    while ((iPktLen = fnDbfTCdll_RecvPacket(caPktBuf, 4090)) > 0)

                    {

                        string szData = caPktBuf.ToString();

                        label1.Text=string.Format("Time: {0} len={1},{2}", DateTime.Now.ToLongTimeString(),iPktLen, szData);

                        label1.Update();

                    }

                           Thread.Sleep(5);

                     }

            }

            else

                MessageBox.Show("false");

 

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            fnDbfTCdll_Stop();

        }

相關文章
重播模擬測試獨立環境 KGQ_HK_20110113

Comments