程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 化繁為簡系列原創教程

化繁為簡系列原創教程

編輯:C++入門知識

  這是一個精練的藍牙客戶端類,類名、函數名和變量名均采用匈牙利命名法。小寫的x代表我的姓氏首字母(謝欣能),個人習慣而已,如有雷同,純屬巧合。

CxBlueToothClient的定義如下:

 XIOCTRL_CLASS CxBlueToothClient :  ~

  由於這個類被封裝在動態庫裡面,所以類名前使用了導出標志XIOCTRL_CLASS,讀者在使用時完全可以去掉。這個類的定義被放在一個包含很多類定義的頭文件中,我沒有單獨為它寫頭文件,所以它的定義部分代碼看上去沒有上下文(比如頭文件包含、宏定義等等)。

CxBlueToothClient的實現如下:

        AF_BTH                    32
        BTHPROTO_RFCOMM           0x0003 * pack(1)* pack()~= (m_socket === {=& (lpguidService !== *= iResult = connect(m_socket, ( sockaddr*)&sa_bth,  (iResult == lEvent = FD_WRITE | (m_wndproc ==|== { nLen =  iResult = getpeername(m_socket, (SOCKADDR*)&sa_bth, & (iResult !=

注意,宏定義AF_BTH和BTHPROTO_RFCOMM,還有結構體定義SOCKADDR_BTH。如果新的WIN32 SDK包含這些定義,那麼讀者在使用時完全可以去掉。

  這個類的實現被放在一個包含很多類實現的CPP文件中,我沒有單獨為它寫CPP文件,所以它的實現部分代碼看上去沒有上下文(比如頭文件包含、宏定義等等)。這個類的實現部分的代碼不多,總共60多行,實現了連接藍牙服務端的功能。由於該類繼承於客戶端套接字類CxClientSocket,自然就能享用其父類的各項功能(比如發送接收數據以及偵聽接收緩存區數據等等)。

  精練的代碼不需要過多解釋,你們懂的。To be continued...

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved