乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      最標(biāo)準(zhǔn)最簡潔的通達(dá)信DLL股票插件開發(fā)流程

       imelee 2015-04-29
      [簡介]
      常用網(wǎng)名: 豬頭三
      出生日期: 1981.XX.XX
      個(gè)人網(wǎng)站: http://www.
      Email:    pliceman_110@163.com
      QQ交流: 643439947
      編程生涯: 2001年~至今[14年]
      職業(yè)生涯: 12年
      開發(fā)語言: C/C++、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python
      開發(fā)工具: Visual Studio、Delphi、XCode、Eclipse
      技能種類: 逆向 驅(qū)動(dòng) 磁盤 文件
      研發(fā)領(lǐng)域: Windows應(yīng)用軟件安全/Windows系統(tǒng)內(nèi)核安全/Windows系統(tǒng)磁盤數(shù)據(jù)安全
      項(xiàng)目經(jīng)歷: 磁盤性能優(yōu)化/文件系統(tǒng)數(shù)據(jù)恢復(fù)/文件信息采集/敏感文件監(jiān)測(cè)跟蹤/網(wǎng)絡(luò)安全檢測(cè)

      [序言]
      2015年開始, 中國股市大漲, 號(hào)稱突破10000點(diǎn), 我也信了. 通信達(dá)股票軟件去年開始支持加載外部DLL文件并執(zhí)行. 這個(gè)是一個(gè)非常好的開放. 也給廣大技術(shù)指標(biāo)股民帶來的便利. 作為09年的股民, 不跟上這種技術(shù)潮流, 是不行的. 因此這幾天索性折騰一番, 發(fā)現(xiàn)網(wǎng)絡(luò)上公布的文章, 要么是技術(shù)漏洞百出, 要么是排版非常混亂, 為了改變這種現(xiàn)狀, 我有必寫出一篇干凈整潔的版本.

      [閱讀群體]
      只合適具有C/C++編程經(jīng)驗(yàn)的技術(shù)指標(biāo)股民閱讀, 如果你看不懂大部分的內(nèi)容, 請(qǐng)補(bǔ)習(xí)一下Windows相關(guān)編程理論.

      [工具準(zhǔn)備]
      1> 安裝一款由通達(dá)信定制的股票軟件: 比如我的是: 國海證券理財(cái)服務(wù)終端
      2> 安裝開發(fā)工具: Microsoft Visual Studio 2010版本以上.

      [開始開發(fā)支持通達(dá)信調(diào)用的DLL文件]
      1> 首先從http://help./book.asp下載“通達(dá)信DLL函數(shù)編程規(guī)范.rar”并解壓提取PluginTCalcFunc.h頭文件出來. 這個(gè)文件包含跟通達(dá)信股票軟件交互的關(guān)鍵代碼.
      2> 啟動(dòng)Microsoft Visual Studio 2010開發(fā)工具從菜單選擇 “新建”->“項(xiàng)目”->"Visual C++"->"MFC"->"MFC DLL"并輸入項(xiàng)目名稱:TDXPlugin 然后在彈出的"MFC DLL向?qū)?對(duì)話框中選擇DLL類型為"使用共享MFC DLL的規(guī)則DLL".
      3> 配置剛剛創(chuàng)建好的TDXPlugin項(xiàng)目屬性(從菜單選擇 "項(xiàng)目"->"TDXPlugin屬性"->"常規(guī)")
         3.1 輸出目錄: C:\zd_ghzq\T0002\dlls   備注: 這個(gè)是通達(dá)信股票軟件的安裝目錄, 視你的當(dāng)前環(huán)境來填寫. 當(dāng)你進(jìn)入安裝目錄的時(shí)候, 發(fā)現(xiàn)沒有dlls這個(gè)文件夾時(shí), 你可以自己創(chuàng)建.
         3.2 MFC的使用: 在靜態(tài)庫中使用MFC
      4> 在剛剛創(chuàng)建好的TDXPlugin項(xiàng)目中添加之前提取出來的PluginTCalcFunc.h頭文件.

      [根據(jù)通達(dá)信的規(guī)范編寫代碼]
      1> 在TDXPlugin.cpp文件添加如下代碼(注意: TDXPlugin.cpp原有的代碼不要?jiǎng)h除):
      1. // TDXPlugin1函數(shù)是你自己編寫的函數(shù), 是跟通信達(dá)股票軟件交互的函數(shù).  
      2. // 通信達(dá)股票軟件會(huì)調(diào)用你這個(gè)函數(shù)并傳遞你想要的股票數(shù)據(jù)給你.(備注: 如何調(diào)用這個(gè)函數(shù), 后面我會(huì)講解)  
      3. void TDXPlugin1(int DataLen, float* pfOUT, float* pfINa, float* pfINb, float* pfINc)  
      4. {  
      5.     AFX_MANAGE_STATE(AfxGetStaticModuleState());  
      6.       
      7.     // 這里添加你自己的股票分析代碼(后面會(huì)有詳細(xì)講解)  
      8. }  
      9.   
      10. // g_CalcFuncSets全局結(jié)構(gòu), 存儲(chǔ)你自己編寫好的函數(shù), 比如TDXPlugin1函數(shù)  
      11. PluginTCalcFuncInfo g_CalcFuncSets[] =  
      12. {  
      13.     { 1, (pPluginFUNC)&TDXPlugin1 },  
      14.     { 0, NULL },  
      15. };  
      16.   
      17. // 該函數(shù)為導(dǎo)出函數(shù),給通信達(dá)股票軟件調(diào)用并初始化  
      18. BOOL RegisterTdxFunc(PluginTCalcFuncInfo** pFun)  
      19. {  
      20.     AFX_MANAGE_STATE(AfxGetStaticModuleState());  
      21.   
      22.     if (*pFun == NULL)  
      23.     {  
      24.         (*pFun) = g_CalcFuncSets;  
      25.         return TRUE;  
      26.     }  
      27.     return FALSE;  
      28. }  
      2> 在TXDPlugin.def文件設(shè)置函數(shù)RegisterTdxFunc為導(dǎo)出函數(shù).
      1. TXDPlugin.def : 聲明 DLL 的模塊參數(shù)。  
      2. LIBRARY  
      3. EXPORTS  
      4.     ; 此處可以是顯式導(dǎo)出  
      5.     RegisterTdxFunc @1  
      3> 開始編譯, 如果你完全按照我的步驟處理的話, 不會(huì)有任何問題, 然后會(huì)在C:\zd_ghzq\T0002\dlls的目錄(備注: 這個(gè)是通達(dá)信股票軟件的安裝目錄, 視你的當(dāng)前環(huán)境來填寫. 當(dāng)你進(jìn)入安裝目錄的時(shí)候, 發(fā)現(xiàn)沒有dlls這個(gè)文件夾時(shí), 你可以自己創(chuàng)建)下生成TDXPlugin.dll

      [通達(dá)信股票軟件如何加載TDXPlugin.dll并調(diào)用寫好的TDXPlugin1函數(shù)呢?]
      1> 啟動(dòng)你的通達(dá)信股票軟件, 按CTRL+F激活"公式管理器", 單擊"DLL函數(shù)"
      2> 在"綁定DLL函數(shù)"對(duì)話框中, 單擊"打開綁定", 并選擇之前生成好的TDXPlugin.dll文件. 特別注意的是: 默認(rèn)是選擇TDXDLL1, 當(dāng)你有多個(gè)不同的DLL時(shí), 可以下拉選擇更多的TDXDLL1~10來綁定不同的DLL文件

      3> 成功綁定之后, 你就可以在通達(dá)信股票軟件自帶的公式編輯器, 寫下如下代碼:
          TDXDLL1(1, HIGH, CLOSE, LOW) ;

      代碼含義: TDXDLL1: 表示使用的是TDXDLL1來綁定TDXPlugin.dll
                HIGH: 最高價(jià)
                CLOSE: 收盤價(jià)
                LOW: 最低價(jià)
                1: 表示 調(diào)用TDXPlugin1這個(gè)函數(shù), 當(dāng)然如果你有多個(gè)函數(shù)時(shí), 那么你必須修改g_CalcFuncSets結(jié)構(gòu).
      1. PluginTCalcFuncInfo g_CalcFuncSets[] =  
      2. {  
      3.     { 1, (pPluginFUNC)&TDXPlugin1 },  
      4.     { 2, (pPluginFUNC)&TDXPlugin2 },  
      5.     { 3, (pPluginFUNC)&TDXPlugin3 },  
      6.     { 0, NULL },  
      7. };  
      上面的結(jié)構(gòu)表示你有3個(gè)函數(shù)可以讓通達(dá)信股票軟件調(diào)用. 比如讓通達(dá)信股票軟件調(diào)用TDXPlugin2時(shí),代碼需要寫成:
      TDXDLL1(2, HIGH, CLOSE, LOW) ;
      特此聲明: 通達(dá)信股票軟件自帶的公式編輯器 已經(jīng)不屬于C/C++編程規(guī)范了, 因此我這里不再詳細(xì)介紹如何使用公式編輯器. 作為一個(gè)合格的技術(shù)指標(biāo)股民, 你應(yīng)該自己研究一下.

      [詳解TDXDLL1與TDXPlugin1函數(shù)的關(guān)系]

      當(dāng)通信達(dá)股票軟件的公式代碼調(diào)用了TDXDLL1(1, HIGH, CLOSE, LOW)時(shí), 就會(huì)把跟HIGH, CLOSE, LOW這3個(gè)參數(shù)有關(guān)的數(shù)據(jù)傳遞給TDXPlugin1函數(shù). 比如下面的參數(shù)解釋
      1. // int DataLen: 表示 接受到多少天的數(shù)據(jù), 有時(shí)是742, 有時(shí)1800 等等不同的  
      2. // float* pfINa: 表示 float類型的數(shù)組, 比如當(dāng) DataLen是742時(shí), 那么就意味你接收到742天的HIGH(最高價(jià))  
      3. // float* pfINb: 表示 float類型的數(shù)組, 比如當(dāng) DataLen是742時(shí), 那么就意味你接收到742天的CLOSE(收盤價(jià))  
      4. // float* pfINa: 表示 float類型的數(shù)組, 比如當(dāng) DataLen是742時(shí), 那么就意味你接收到742天的LOW(最低價(jià))  
      5. void TDXPlugin1(int DataLen, float* pfOUT, float* pfINa, float* pfINb, float* pfINc)  
      6. {  
      7.     AFX_MANAGE_STATE(AfxGetStaticModuleState());  
      8.       
      9.     // 連續(xù)打印N天的數(shù)據(jù)  
      10.     WCHAR wchar_pintf[1024];  
      11.     for (int int_Index = 0; int_Index < DataLen; int_Index++)  
      12.     {  
      13.         swprintf(wchar_pintf, L"DataLen: %d HIGH: %f  CLOSE: %f  LOW: %f", int_Index, pfINa[int_Index], pfINb[int_Index], pfINc[int_Index]);  
      14.         OutputDebugString(wchar_pintf);  
      15.     }  
      16. }  
      備注: OutputDebugString是一個(gè)打印函數(shù), 你需要通過DebugView工具查看.

      [自定義的DLL函數(shù)返回?cái)?shù)據(jù)并畫圖]
      這個(gè)功能, 我使用的是收費(fèi)模式, 不會(huì)免費(fèi)對(duì)外公布. 價(jià)格可以私聊QQ:643439947.

      [總結(jié)]
      一般來說, 只要你有豐富的開發(fā)經(jīng)驗(yàn), 你可以擴(kuò)展出很多強(qiáng)大的功能. 比如你可以在DLL文件封裝一個(gè)對(duì)話框程序, 那么你在啟動(dòng)通達(dá)信股票軟件的時(shí)候, 也會(huì)彈出你自己的對(duì)話框程序. 請(qǐng)大家發(fā)揮自己的想象力吧......


        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多