最近想把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 傳過來的轉換.