NOTforcp" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

ETLLib庫(kù)走讀

系統(tǒng) 1976 0

  以前從來(lái)也沒(méi)想過(guò)要去看庫(kù)里的代碼,咱想,那怎么也是很底層的代碼,居然發(fā)現(xiàn)庫(kù)里的代碼也可以這樣寫(xiě),那就先讀懂這個(gè) ETLLib (跨 windows Linux 平臺(tái),封裝了一些基本的系統(tǒng)調(diào)用函數(shù),然后實(shí)現(xiàn)定制化的實(shí)現(xiàn)自己的容器), Qt 的庫(kù)代碼更全面,當(dāng)然也更復(fù)雜。先看看 ETTLib 是如何被實(shí)現(xiàn)的,其中的技巧與設(shè)計(jì)是我需要汲取的,首先,向前輩 SYZ 致敬!

#ifndef __cplusplus

#error use <ETLLib.h> NOT <ETLLib.hpp> for c program

#endif

?

注意: #error 這個(gè)預(yù)定義的報(bào)警作用;編譯的時(shí)候做限制,編譯器支持 C++ 則包含 ETLLib.hpp ,否則包括 ETLLib.h<br><br> 跨平臺(tái)預(yù)定義支持

    
      
        #ifdef _WIN32
      
    
    
      
        

#define WINDOWS_SYSTEM 1

#define LINUX_SYSTEM 0
    
      
        #else
      
    
    
      
        

#define WINDOWS_SYSTEM 0


#define LINUX_SYSTEM 1
    
      
        #endif
      
    
  

?

    
      
        ETLLib.h中定義了一些基本關(guān)鍵字,像int,char等分別在Win32與Linux下的不同定義,assic與unicode編碼等 
      
    
  

?

    
      
        兩個(gè)不同平臺(tái)線程創(chuàng)建函數(shù)使用宏定義,向應(yīng)用層提供統(tǒng)一的調(diào)用接口。WIN32:CreateThread函數(shù),附介紹鏈接 
      
    
    
      http://blog.csdn.net/cbnotes/article/details/8277180
    
  

?

    
      
          #define
        
           DECLARE_THREAD_METHOD(method) extern DWORD __stdcall method(void* lpData) 
        
      
    
  
    
      
          #define
        
           IMPLEMENT_THREAD_METHOD(method) DWORD __stdcall method(void* lpData) 
        
      
    
  
    
      
          #define
        
           CREATE_THREAD(thread_method) do{THREAD_ID id = 0; CreateThread(NULL, 0, thread_method, NULL, 0, &id);}while(0) 
        
      
    
  
    
      
          #define
        
           link_lib(prex) comment(lib, prex _USUF _DSUF ".lib") 
        
      
    
  
    
      
          #pragma
        
           link_lib("LTLLib") 
        
      
    
  

?

    
      
        Linux:pthread_create函數(shù) 
      
    
  
    
      
        ????#define
        
           DECLARE_THREAD_METHOD(method) extern void* method(void* lpData) 
        
      
    
  
    
      
        ????#define
        
           IMPLEMENT_THREAD_METHOD(method) void* method(void* lpData) 
        
      
    
  
    
      
        ????#define
        
           CREATE_THREAD(thread_method) do{THREAD_ID id = 0; pthread_create(&id, NULL, thread_method, NULL);}while(0) 
        
      
    
  

?

    
      
        
          
            注意
          
          
            do while(0)
          
        
        
          
            的用法;
            


ETLLib庫(kù)走讀


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 乌兰浩特市| 河间市| 樟树市| 宁远县| 白山市| 北辰区| 扶绥县| 潼南县| 灵寿县| 兴和县| 玛多县| 武强县| 元江| 祥云县| 吉安市| 乌鲁木齐市| 广河县| 横峰县| 马尔康县| 鄱阳县| 汉寿县| 葵青区| 磴口县| 郸城县| 鲁甸县| 淮安市| 永德县| 宣威市| 民乐县| 调兵山市| 双牌县| 蕉岭县| 双流县| 兴仁县| 澄江县| 逊克县| 班玛县| 绍兴县| 卓尼县| 夏邑县| 长子县|