最近想把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 传过来的转换.