MFC多线程 MFC界面中有相关的配置。要开启一个线程来进行计算,计算过程中需要读取界面的配置信息。需要怎么做呢?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 _beginthreadex开启贤臣后,在线程函数里GetPrivateProfile 有这个api读取ini如果是xml的配置信息,可以用 第三方库来读取,没api读取的 MFC的界面类CXXXWnd在类内声明一个静态线程函数,static UINT CXXXThread(LPVOID lp)定义UINT CXXXWnd::CXXXThread(LPVOID lp){ CXXXWnd* p = (CXXXWnd*)lp; //用p可以访问界面对象的所有成员,共有的,私有的,保护的,数据,函数…… ...}在你需要启动此线程的时候AfxBeginThread(CXXXThread,this);就好了。 请问楼上几位,我就是把界面指针传进去,然后调用了STR_VEC vecResult;for (int i = 0; i < m_lstSelect.GetCount(); ++i){ CString strName; m_lstSelect.GetText(i, strName); vecResult.push_back(strName);}return vecResult;卡道不卡,就是内存泄露了。是什么原因呢? 谢谢啦 泄露一般就是NEW了没有释放 指针是NEW的吗?有没有delete? 最好把你需要的数据的指针做成一个结构或者什么东西,传递的线程中去。有些MFC的类不是线程安全的,可能是这个原因导致莫名其妙的内存泄漏。 已经存的一个窗口,用Cwnd::Attach关联一个mfc的Cwnd对象,想问一下,该窗口的wndproc有没有变成AfxWndProc 有关sprift()神奇的问题 异常捕获的问题 list control 不支持 unicode ? 很弱的问题 全局变量共享数据的方法! 动态建立CEdit 和 CComboBox 的问题 关于派生自CRichEditView类的程序界面的问题! VC IDE的小问题 请教高人,如何用程序分解rm声音文件,谁了解rm的文件格式 MFC数据库问题m_pSet undeclared identifer 如何在关闭程序时,执行一段操作,成功后再关闭
在类内声明一个静态线程函数,
static UINT CXXXThread(LPVOID lp)
定义
UINT CXXXWnd::CXXXThread(LPVOID lp)
{
CXXXWnd* p = (CXXXWnd*)lp;
//用p可以访问界面对象的所有成员,共有的,私有的,保护的,数据,函数……
...
}在你需要启动此线程的时候
AfxBeginThread(CXXXThread,this);
就好了。
STR_VEC vecResult;
for (int i = 0; i < m_lstSelect.GetCount(); ++i)
{
CString strName;
m_lstSelect.GetText(i, strName);
vecResult.push_back(strName);
}return vecResult;卡道不卡,就是内存泄露了。是什么原因呢? 谢谢啦
有些MFC的类不是线程安全的,可能是这个原因导致莫名其妙的内存泄漏。