【多线程与AfxGetMainWnd & 窗口 与 线程 有必然联系吗? & 命名空间】

大数据领域数据产品的团队激励与绩效管理 在大数据领域,数据产品的成功离不开高效协作的团队。团队激励与绩效管理的目的在于激发团队成员的工作热情和创造力,提高工作效率和质量,确保数据产品能够按时、高质量地交付。本文章的范围涵盖了大数据领域数据产品团队激励与绩效管理的各个方面,包括激励机制的设计、绩效评估的方法、团队沟通与协作等。本文将按照以下结构进行阐述:首先介绍核心概念与联系,明确相关概念的定义和相互关系;接着讲解核心算法原理和具体操作步骤,为团队激励与绩效管理提供理论支持和实践指导;然后分析数学模型和公式,帮助读者深入理解绩效评估的原理; 阅读详情


【多线程与AfxGetMainWnd & 窗口 与 线程 有必然联系吗? &  命名空间】

笔记内容:

转载自:http://blog.youkuaiyun.com/linyaoxin/article/details/4847529

《多线程与AfxGetMainWnd的吐血遭遇……》

事情开始有点眉目了,似乎是开始多线程以后再调用::AfxGetMainWnd()->SetWindowText就会发生崩溃,但是为啥之前VC6里死活没问题?找了半天资料没答案,最后很幸运的在某个站点看到一个全英文回答:

If AfxGetMainWnd is called from the application's primary thread, itreturns the application's main window according to the above rules. If thefunction is called from a secondary thread in the application, the functionreturns the main window associated with the thread that made the call.

在多线程里调用AfxGetMainWnd返回的是与线程有关联的主窗体?但是我这程序只有一个窗体,但是它仍然崩溃,差不多明白了,多线程里获得的句柄不等于真正的窗体句柄,对这个句柄进行“非法写操作”,于是崩溃了……

 

// "多线程里获得的句柄不等于真正的窗体句柄",这句话不理解?

// 有多个窗口,多个线程,此时,各个线程中调用 AfxGetMainWnd() 返回的是什么呢? 

// 有一个窗口,多个线程,此时,各个线程中调用 AfxGetMainWnd() 返回的又是什么呢? Trylater。

// 窗口 与 线程 有必然联系吗?

 

了解了症状就好办了,在全局里写一个窗口句柄类变量
CWnd* m_pCWnd;

然后在初始化过程OnInitDialog里加上
m_pCWnd = AfxGetMainWnd();

// 这里为什么不用命名空间限定符,即 m_pCWnd = ::AfxGetMainWnd();

以后要写窗体标题的时候就用m_pCWnd->SetWindowText,将程序里所有AfxGetMainWnd改为m_pCWnd,重新编译运行,终于不再崩溃了!

 

SpringAI系列 - MCP篇(二) - MCP Server Boot Starter 此处需注意之前的。 阅读详情

相关推荐

Python实战:解析腾讯视频M3U8加密链接并下载高清影片

本文详细介绍了如何使用Python解析腾讯视频M3U8加密链接并下载高清影片。从环境准备、抓包分析到核心代码实现,逐步讲解如何获取M3U8主链接、解析TS分片列表以及下载合并视频片段。文章还提供了多线程下载、断点续传和加密视频处理等优化方案,帮助开发者高效完成视频下载任务。

weixin_30836759的博客 525

多线程

目录CreateThread详解参考资料 CreateThread详解 HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, SIZE_T dwStackSize, LPTHREAD_START_ROUTINE lpStartAddress, __drv_aliasesM...

laidasidie的博客 315

YOLOv5添加注意力机制的具体步骤

本文主要介绍了 本文在此篇博客的基础上向YOLOv5-5.0版 本文主要包括以下内容一、CBAM注意力机制添加(1)修改yolov5s主干网络(2)在common.py中添加可调用的CBAM模块(3)向yolo.py文件添加CBAMC3判断语句二、SE注意力机制添加 本文以yolov5s网络为例 一、CBAM注意力机制添加 注意力机制可以添加在backbone,Neck,Head等部分,接下来本文以backbone主干网络为例 (1)修改yolov5s主干网络 1.在yolov5-5.0工程文件夹下,找到m

thy0000的博客 2万+

VC8下多线程环境中AfxGetMainWnd()返回空指针问题及解决方法

<br />一个vc6的项目放到vc8下重新编译 这里死活过不去 查了些资料无果 后来翻到一句老外的回答<br />If AfxGetMainWnd is called from the application’s primary thread, it returns the application’s main window according to the above rules. If the function is called from a secondary thread in the appl

qinqqfirst的专栏 792

Nvidia Jetson CH340 驱动安装

最近调一个USB设备,Windows系统上是可以安装CH340 驱动使用的,移到Jetson AGX Orin 上发现没有 /dev/ttyUSB* 设备显示。是一个为盲人和视力障碍者提供的终端设备驱动程序,它会在系统启动时自动加载并占用串口设备,导致我们无法正常使用部分串口设备。安装完后,内核中已经有。

Vulcan_S的博客 1638

终极版:完美实现在PyQT5或Pyside2中构建无边框圆角阴影窗口,可拖动,阴影随窗口活动状态变化,窗口鼠标拖动改变大小(完美复用)

终极版(完美复用):完美实现在PyQT5或Pyside2中构建无边框圆角阴影窗口,可拖动,阴影随窗口活动状态变化,窗口鼠标拖动改变大小

文野海阳的博客 1668

使用AfxGetApp()->GetMainWnd()而不是AfxGetMainWnd()使得MFC主程序接收辅助线程发送的消息

MFC辅助线程向主线程窗口发送消息 使得MFC主窗口接收辅助线程发送的消息 AfxGetMainWnd()在辅助线程中得不到主窗口指针

simple的博客 1736

分位数映射数据后处理-Quantile Mapping后处理 (R语言)

统计后处理器基本上是统计模型,将观察到的关注变量与从气象或水文模型的直接模型输出(DMO)导出的适当预测变量相关联。统计后处理的重要性早已在气象预报中得到认可。早期的工作包括完善的预测(perfect prognosis),模型输出统计(MOS)和模拟方法(analog method)等模型。 近年来,已经提出了许多其他后处理方法,包括秩直方图校准(rank histogram calibrati...

水滴石穿,绳锯木断 1万+

多线程AfxGetMainWnd问题的解决

<br />    我们在学习多线程异步编程时,会遇到这么一段函数:<br />    void ThreadFunc() <br />   { <br />       CTime time; <br />       CString strTime; <br />       m_bRun=TRUE; <br />       while(m_bRun) <br />      { <br />          time=CTime::GetCurrentTime(); <br />         

whdxcaoguo2的专栏 958

超级详细!!!新手使用AutoDL跑深度学习(MixVPR项目)的学习记录

新手第一次在AutoDL上跑深度学习的实验,遇到一些问题,简单记录一下。如果大家发现问题,欢迎和我讨论。

weixin_45152283的博客 5万+

SolidWorks速成教程P3-5【零件 | 第五节】——异形孔向导&线性阵列&镜像

这节介绍异形孔向导、线性阵列、镜像。

嵌入式阿齐Archie 6073

关于在线程中使用AfxGetMainWnd()出错的问题,终于找到了

关于在线程中使用AfxGetMainWnd()出错的问题.AfxGetMainWnd()得到的是当前线程的主窗口(如果有的话).因为主窗口是属于主线程的,所以想得到主窗口HWND值,只能在主线程中用AfxGetMainWnd(),但要不是处在主线程中,AfxGetMainWnd()可能是从当前线程查询主窗口的。但好像AfxGetMainWnd()不能跨线程,故要出错.要想在线程中使用主窗口的H

darkduck9989的专栏 1605

Dify之八添加各种在线大模型

Dify之八添加各种在线大模型

yilvyangguang520的博客 938

AfxGetMainWnd()在辅助线程中无法获得主窗口句柄的问题

AfxGetApp()-&amp;gt;GetMainWnd()和AfxGetMainWnd()的区别 1.AfxGetApp()-&amp;gt;GetMainWnd() 获取的是主线程的窗口句柄。 2. AfxGetMainWnd()获取的是所在线程的窗口句柄。 在单线程下他们获得是同一个窗口,多线程下则不是。 void /*Cthread1Dlg::*/threadFunc() { CTi...

mikasoi的博客 822

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

AfxGetMainWnd函数

使用AfxGetMainWnd函数获取MFC程序中的主框架类指针是一个常用作法。但是你会发现这一做法有时也会失灵。不信, 你测试一下下面的代码:        view plaincopy to clipboardprint?unsigned __stdcall SecondThreadFunc( void* pArguments )   {      CMainFrame* pMainWn...

weixin_33887443的博客 133

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

多线程AfxGetMainWnd() 返回空

<br />本文来源:http://blog.163.com/adslxk@126/blog/static/100610671201041434131337/<br /> <br />一个vc6的项目放到vc8下重新编译 这里死活过不去 查了些资料无果 后来翻到一句老外的回答<br />If AfxGetMainWnd is called from the application’s primary thread, it returns the application’s main window a

每天一小步 未来一大步 664

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

使用AfxGetMainWnd函数的一个心得

使用AfxGetMainWnd函数的一个心得

qq_43679402的博客 406

(转)使用AfxGetMainWnd函数的一个心得

作者:朱金灿 来源:http://blog.youkuaiyun.com/clever101/ 使用AfxGetMainWnd函数获取MFC程序中的主框架类指针是一个常用作法。但是你会发现这一做法有时也会失灵。不信,你测试一下下面的代码: [cpp]view plaincopy unsigned__stdcallSec...

dianchixian5277的博客 107

AfxGetApp()->GetMainWnd与AfxGetMainWnd的区别

近日,调试程序在工作线程中要使用到主对话框的一个成员变量,当时懒得使用参数传递的方式,直接在函数里面通过afxGetmainWnd获取主窗口指针再通过指针获取成员变量的值,结果运行时报0x000005错误,当把afxGetmainWnd换成AfxGetApp()->GetMainWnd时确一切OK,运行正常,查阅资料得知: AfxGetMainWnd获取的是当前窗口指针; AfxGetAp

田群的专栏 1214

AfxGetApp()->GetMainWnd()和AfxGetMainWnd()的区别

1. 获取的是主线程的窗口句柄。 2. AfxGetMainWnd()获取的是所在线程的窗口句柄。 在单线程下他们获得是同一个窗口,多线程下则不是。   下面是一个线程函数: void /*Cthread1Dlg::*/threadFunc() {  CTime time;  CString strTime;  g_bRun = true;  while(g_bRun)  {

gx_wqm的专栏 2609

VC2008下多线程环境中AfxGetMainWnd()返回空指针问题及解决方法

If AfxGetMainWnd is called from the application’s primary thread, it returns the application’s main window according to the above rules. If the function is called from a secondary thread in the applic

momosp的专栏 2128

MFC线程里调用AfxGetMainWnd的陷阱

如果直接在线程里调用AfxGetMainWnd可能会出错,原因: _AFXWIN_INLINE CWnd* AFXAPI AfxGetMainWnd(){ CWinThread* pThread = AfxGetThread();   return pThread != NULL ? pThread-&amp;gt;GetMainWnd() : NULL; } 而AfxGetThread获取的是当前线...

weixin_34309435的博客 341

AfxGetMainWnd调用错误

把之前用VC6写的MFC工程升级到VC2005后,编译运行就崩溃,莫名其妙,问了ZV说是经常出现这种问题,要重新建立个工程拖代码才行,那好吧,就重来,折腾了好久,还是……又崩溃了…… 这下头大了,同样的代码,VC6里正常,VC2005反而崩溃?尝试关闭连接的多种选项,除了出现莫名其妙的LNK ERROR以外一无所获,最后F8逐步调试,发现在_beginthread后的WaitForS

phenixyf的专栏 1339
上一篇: 【命名空间的一个疑问】pDlg = ::AfxGetMainWnd(); 像这样限定符"::" 前面没有命名空间名的情况,是什么意思?我记得好像是全局的意思,不确定。
下一篇: POSITION 类型
turtle_2
博客等级 码龄17年 8粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值