由雲臺協議DLL淺談插件程序的編寫(下)【原創】

由雲臺協議DLL淺談插件程序的編寫(下)【原創】
1.創建項目,“Visual C++項目”--->“Win32”--->“Win32 項目”--->“DLL”,選中“導出符號”,(VS2003平臺),按源碼目錄組織規範設置項目,參考我的blog 2004.12其中文章。
2.添加鏈接庫導出定義文件:****.def,加入到項目中。
; ptzPelco-D.def : 聲明 DLL 的模塊參數。
 
LIBRARY      "ptzPelco-D"
 
EXPORTS
    ; 此處可以是顯式導出
   
CreatePTZInstance PRIVATE
ProtocolNames  DATA
說明:上面分別是導出變量和導出函數。
3.把工程默認的導出變量和導出函數刪除,默認導出的類也刪除(頭文件可刪空)。
4.在DllMain所在的cpp文件添加定義:
const char * ProtocolNames[] =
{
    "PELCO-D",
    "PELCO-P",
    0 // 必須以0表示結束
};

CPTZInterface * __stdcall CreatePTZInstance(const char * pszProtocolsName)
{
    if (0 == strcmp(pszProtocolsName, ProtocolNames[0]))
    {
         return new CPelco_D;    // 看下面的定義!
    }

    if (0 == strcmp(pszProtocolsName, ProtocolNames[1]))
    {
         return new CPelco_P;    // 看下面的定義!
    }

    return 0;
}
5.從接口派生出一個類,定義如下:
class CPelco_P: public CPTZInterface { …… }
注意上面的CreatePTZInstance函數,這樣就達到了創建這個協議對象的目的了。
6.說明:創建的對象用該類的Destroy()銷燬,由使用者調用。
7.轉載請保留完整文檔,天衣有縫原創,2004.12.24凌晨0:05,深圳南山科技園
 
發佈了41 篇原創文章 · 獲贊 1 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章