慎用AfxGetApp()->GetMainWnd()->m_hWnd

PyTorch复现EEG-TCNet踩坑记:从BCI IV2a数据到TCN块缺失的完整解决方案 本文详细解析了使用PyTorch复现EEG-TCNet模型的全过程,重点解决了BCI IV2a数据集预处理和TCN模块缺失的技术难题。通过标准化数据流程、跨受试者验证策略以及三种因果卷积实现方案,为运动想象分类任务提供完整解决方案,帮助研究者高效实现模型复现与优化。 阅读详情

刚刚查了一个问题。

问题描述:我提供了一个库给上层使用,上层的应用程序运行时出现崩溃。

问题解决:搭环境,用VC调试查问题。 原来是如下的问题,取主窗口句柄使用了

 

AfxGetApp()->GetMainWnd()->m_hWnd

 

但程序运行时AfxGetApp()会返回 NULL值,所以程序崩溃。

代码改为

 

CWinApp* pWinApp = AfxGetApp();

if (NULL != pWinApp)

{

    CWnd *pWnd = pWinApp->GetMainWnd();

    if (NULL != pWnd)

     {

         //可安全取 pWnd->m_hWnd;

     }

}

 

 总结: 大意了,AfxGetApp()->GetMainWnd()->m_hWnd这样的写法很常见,在许多例程中都有出现,但常见不等于安全和稳定。指针访问是C/C++的特点、长处,也是她的致命弱点,对外接口的指针访问要加强检查和保护,不要怕啰嗦,安全稳定最重要,这些问题在模块集成后再查会很痛苦。

ZynqMP多核实战:如何让A53-0跑Linux,其他核裸机处理大数据(附完整配置流程) 本文详细解析了Xilinx ZynqMP多核异构计算实战,重点介绍如何配置A53-0运行Linux系统,同时让其他A53和R5核心以裸机方式处理大数据任务。内容涵盖内存划分、核间通信、Linux定制配置等关键技术,提供完整的配置流程和性能优化方案,助力开发者实现高效的多核协同开发。 阅读详情

相关推荐

关于RTP时间戳以及播放器对时间戳的处理

首先,了解时间戳几个基本概念: 时间戳单位:时间戳计算的单位不是秒之类的单位,而是由采样频率所代替的单位,这样做的目的就是为了是时间戳单位更为精准。比如说一个音频的采样频率为8000Hz,那么我们可以把时间戳单位设为1 / 8000。 时间戳增量:相邻两帧之间的时间差(以时间戳单位为基准)。 采样频率: 有些地方也叫时钟频率,即 每秒钟抽取样本的次数,例如音频的采...

toshiba689的专栏 3052

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

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

darkduck9989的专栏 1605

MT4量化交易入门:手把手教你用MQL4编写第一个外汇EA(含完整代码)

本文详细介绍了如何使用MQL4在MT4平台上编写第一个外汇EA,涵盖从开发环境配置到均线交叉策略实现的完整流程。通过手把手教学和完整代码示例,帮助量化交易新手快速掌握外汇自动化交易的核心技术,实现高效的MT4量化交易系统。

mmm90的博客 527

获得主窗口句柄AfxGetApp()->m_pMainWnd

AfxGetApp()->m_pMainWnd 1: AfxGetApp()->m_pMainWnd这个东西就是主窗口的指针。即CMainFrame类的对象指针。很多东西的创建和它有关。以及可以用它来获取视图和文档指针。也可以使用AfxGetMainWnd();或 AfxGetApp()->GetMainWnd() 这个函数在程序的任何地方都可以调用的原因是它是一个全局函数,函数返回值是C

riscben的博客 4045

FPGA以太网接口设计避坑指南:GMII与RGMII时序转换的三种实现方案对比

本文深入解析FPGA以太网接口设计中GMII与RGMII时序转换的三种实现方案,包括Xilinx官方IP核、手工原语逻辑和开源方案gmii_to_rgmii。通过对比分析各方案的优缺点和适用场景,为工程师提供技术选型指南,帮助避免常见设计陷阱,提升高速网络设备开发的效率和可靠性。

weixin_42570484的博客 387

CST--时域仿真的网格设置技巧

对于物理概念清晰的工程师而言,使用时域算法几乎能够解决所有电磁仿真问题,但是,掌握时域算法的仿真技巧比掌握频域的难度大,这恐怕也是很多仿真工程师更喜欢使用频域算法的原因,因此,对于时域算法的灵活应用更能考验你是否是一名合格的仿真工程师。

一只豌豆象的博客 6864

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

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

simple的博客 1736

EZ-INSAR工具箱(使用历史问题)

把 rasterio 升到 1.3+(或退回 py39)→features能 import → 脚本能跑 → 出图 → MATLAB 不再报错!

2301_79258000的博客 121

AfxGetApp()->m_pMainWnd和AfxGetMainWnd()

今天在解决一个bug时关注到了这两个看上去貌似一样的东西:AfxGetApp()->m_pMainWnd和AfxGetMainWnd()。平时不用多线程时,都是随便用,用法上也没什么区别,也没去专门的研究。当有BUG存在时,才意识到。 由于我是在多线程中使用,每次用AfxGetMainWnd来sendmessage时,都会崩溃,将AfxGetMainWnd提取出来设给一个pWnd时,调试显示的是

BestRiven999的博客 942

人工蜂群优化算法(ABC)详解:原理、实现与应用

人工蜂群算法(Artificial Bee Colony, ABC)是Karaboga于2005年提出的一种群体智能优化算法,其灵感来源于蜜蜂群体在自然界中高效的采蜜行为。该算法通过模拟雇佣蜂、观察蜂和侦察蜂三种角色的分工协作来寻找最优解。在ABC算法中,每个潜在的解决方案被视为一个“食物源”,其质量由适应度函数评估。雇佣蜂负责在已知优质食物源附近进行局部开采;观察蜂根据雇佣蜂分享的信息,以一定概率选择并跟进优质食物源;侦察蜂则随机探索新区域,防止种群陷入局部最优。

qq_42212808的博客 393

【物联网】基于LORA组网的远程环境监测系统设计(ThingsCloud云平台版)_资料编号34

实现一主多从的LORA组网远程通信,主机和两个从机都配备了STM32F103单片机与 LoRa 模块,主机作为中心设备及WIFI网关,负责接收和发送数据到远程物联网平台和手机APP,两个从机则负责采集数据并通过各自的 LoRa组网将数据发送给主机。

嵌入式阿齐Archie 1万+

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

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

gx_wqm的专栏 2609

基于Cesium实现,动态水面+大坝排水动画

一、绘制面状水域,使用水波纹理,进行渲染,水体透明,可以看到底色。三、使用粒子系统,将喷泉改变方向,加上重力设置,实现排水动画。二、绘制线状三维体,用作模拟大坝拦截效果。四、最后,模拟水位上升,进行淹没分析,

一醉千秋的专栏 1420

AfxGetApp()->GetMainWnd()->GetSafeHwnd()

AfxGetApp()-   --    取应用程序实例指针       getmainwnd   --    取主窗口对象指针

jiangqin115的专栏 2848

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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

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

mikasoi的博客 822

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MFC 获取当前活动窗口的句柄

::AfxGetApp()-> GetMainWnd()->GetSafeHwnd()和::AfxGetMainWnd()->GetSafeHwnd()单线程中两个函数的结果是相同的。 如果是多线程则不同。前者是主线程的。 后者是单前所在的线程的。AfxGetApp( )是全局的。AfxGetApp( )这个函数可以得到当前应用进程的指针,是CWinApp*类型的,通过这个指针可以访问到这个进程中的对象。如果子线程只是一个函数线程的话,在其内使用 ::AfxGetMainWnd()->GetSafeHwnd

黑色星辰 1万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

获取对话框句柄

简介: 获取主对话框和子对话框的句柄,子对话框通过FindWindow。 1.主对话框 CTcpAsynSDlg *pMainDlg = (CTcpAsynSDlg*)AfxGetApp()->GetMainWnd(); pMainDlg->m_hWnd;就是指向主对话框的句柄。

路过 6828

MFC线程内获取主窗口句柄

CWnd* h_q = AfxGetApp()->GetMainWnd(); //获取主窗口的句柄 转载于:https://www.cnblogs.com/xuandi/p/5362480.html

weixin_30273763的博客 473

AfxGetMainWnd()返回NULL

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

qxbailv15的专栏 1398

MFC 获取对话框的指针

对于MFC的对话框,要对其操作必须先获取到它的对象指针,下面是对对话框的对象指针的获取方式的解读 1.获取主窗口的对话框的对象指针 CWnd* pWnd = AfxGetApp()->GetMainWnd(); 2.获取指定对话框的对象指针 CWnd* pWnd = FindWindow(NULL, _T("对话框的名称")); 3.ID , 指针, 句柄三者的转化 ID...

2730

MFC中自定义消息

第一步:定义消息。     推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。   #define WM_MY_MESSAGE (WM_USER+100)   第二步:实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LPESULT。   LPESULT CMainFrame::OnMyMessage(WPARAMwPar

FreeBird的专栏 1447

MFC中经常出错的地方

1.AfxGetApp  功能:获得theApp对象的指针 当且仅当在使用共享MFC DLL的规则DLL和带静态链接MFC的规则DLL(只有这两个类型的DLL中才包含theApp对象)的DllMain函数调用栈中调用AfxGetApp时,AfxGetApp返回的才是动态链接库中的theApp对象指针,其他所有情况AfxGetApp返回的都是主程序中的theApp对象指针。当然,如果主程

backard的专栏 1307

在线程中执行AfxGetMainWnd()出错的问题

我在自己的MFC主程序里面创建了一个线程,在线程里面调用AfxGetMainWnd()获取主框架的时候出错了.上网查了一下,原来这个函数是不能在子线程里面获取主线程框架是会出错的.     以下是转贴:AfxGetMainWnd()得到的是当前线程的主窗口(如果有的话).因为主窗口是属于主线程的,所以想得到主窗口HWND值,只能在主线程中用AfxGetMainWnd(),但要不

痞子龙3D编程 2313

AfxGetApp()解析

。解析AfxGetApp()函数 本文是学习深入浅出MFC后的第一个笔记,解析AfxGetApp()函数 在AFXWIN.H中是这么定义的:     CWinApp* AFXAPI AfxGetApp(); 那么AfxGetApp是怎么获取当前App的CWinApp类指针呢? AfxGetApp是一个内联函数,其实现如下(在AFXWIN1.INL):      _AFXWIN_INLI

yaxf999的专栏 3272

AfxGetMainWnd 与 theApp.GetMainWnd()

一般情况下: 如果是主线程中应用: 1:对话框程序,获取的是主窗口; 2:文档程序获取的是主框架; AfxGetMainWnd  与 theApp.GetMainWnd()没有什么区别; 但是在辅助线程中应用,就有区别: If AfxGetMainWnd is called from the application's primary thread, it return

chinabinlang的专栏 3160
上一篇: 测试 baidu, google, bing的中文搜索
下一篇: 关于RDTSC和CPU调频
marchbirdcode
博客等级 码龄17年 11粉丝 11原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值