天天看點

MFC 一個無參線程的CreateThread 使用

 最近想把c#的一個工作中用到的軟體用MFC 實作出來, 剛下手 要了解的東西挺多,不但要對c++的文法,大體看一遍.

還要看MFC 内一些窗體,之類的相關的定義,比如cpp ,.h 内的類的定義方式等等,大體上看了下c++的文法, 以前有一點點的基礎,十年前畢業時當時是vc++ 6.0 .

c++ 中我想指針是繞不過去的難點.剛開始也不用掌握所有,隻有在項目中邊做邊體悟,我想這才是正常的路子,

今天對線程,因為網上挺多有參數的使用,我想先把無參的方式簡單呈現出來,然後再去擴充.

1:在生成的主窗體的.h 檔案下聲明一下; 定義在窗體類外.

//線程函數聲明  
DWORD WINAPI ThreadProc(LPVOID lpParam);      

2:在内添加如下代碼

HANDLE hThead;    //用于存儲線程句柄  
    DWORD  dwThreadID;//用于存儲線程的ID  
//    threadInfo Info[3];   //傳遞給線程處理函數的參數  
    HICON m_hIcon;      

3:在cpp 内調用生成線程函數

hThead = CreateThread(NULL, 0, ThreadProc, NULL, 0, &dwThreadID);      

4:在cpp内

DWORD WINAPI ThreadProc(LPVOID lpParam)
{
//    threadInfo* Info = (threadInfo*)lpParam;
AfxMessageBox("ddd");
return 0;
}      

這四步 一個線程就生成完了, 裡邊可以編寫你想要的東西

跟c#相比  多了在.h中的聲明.  有了句柄之類的概念了.

CreateThread(NULL, 0, ThreadProc, NULL, 0, &dwThreadID); 中第四個參數 為null 就是無參數, 此參數是指針參數,是傳給調用的函數中的.在文中第四部注釋掉了 info 傳過來的轉換.