最近用mfc做了一个小东西,学到的一些东西。
使用静态成员变量:类中所有成员共享数据
mfc 线程函数传this 参数 AfxBeginThread(ExportXml, this);
door.h
struct doorInfo
{
string name; //用户名
string userid; //用户id
string passwd; //密码
int index;
};
class door
{
public:
door();
~door();
void setvalue(int &i);
void print();
void* m_sdkstatus ;
CWinThread * m_pThread;
public:
static vector<doorInfo>m_data;
static UINT ExportXml(LPVOID pParam);
private:
static doorInfo vecorInit();
};
door.cpp
door::door()
{
vecorInit();
m_sdkstatus = NULL;
}
door::~door()
{
}
void door::setvalue(int &i)
{
char buf[12] = { 0 };
sprintf(buf, "%d", i+1);
doorInfo temp;
temp.index = i+1;
temp.name = buf;
temp.passwd = buf;
temp.userid = i;
m_data.push_back(temp);
m_pThread = AfxBeginThread(ExportXml, this);
}
void door::print()
{
for (vector<doorInfo>::iterator it = m_data.begin(); it != m_data.end(); it++)
{
printf("%s \n", it->name.c_str());
//printf("%s %s %s %s %d\n",it->name.c_str(),it->passwd.c_str(),it->userid.c_str(),it->index);
}
}
UINT door::ExportXml(LPVOID pParam)
{
door * temp = new door;
temp = (door *)pParam;
doorInfo aaa;
aaa.name = "aa";
aaa.passwd = "aa";
aaa.index = 12;
temp->m_data.push_back(aaa);
return 0;
}
doorInfo door::vecorInit()
{
doorInfo temp;
temp.index = 0;
temp.name = "";
temp.passwd = "";
temp.userid = "";
m_data.push_back(temp);
return temp;
}
vector<doorInfo>door::m_data;
main.cpp int main() { door d; for (int i = 0; i < 10; i++) { d.setvalue(i); } d.print(); getchar(); return 0; }