读书时间 2011/10/25

STM32的bootloader程序(通过串口更新STM32应用程序) STM32的bootloader程序(通过串口更新STM32应用程序),对bootloader进行浅浅的学习 阅读详情

《Windows Programming》V2


1. Chap 5, 框架


* _asm {int 3}只在debug状态下工作?

* 窗口handler与CWnd针针的映射

线程中每一个窗口都对应一个CWnd类指针

窗口函数通过hWnd得到CWnd指针,再调用相应方法完成功能

Q:HANDLE就是一种指针,YES。如模块HANDLE就是模块代码的首地址。


* CWinApp/CWinThread

任何程序必须定义一个CWinApp子类的全局变量,使CWinApp:CWinApp()能首先执行,完成初始化动作 。

系统中无需再定义WinMain()函数,此函数已经在CWinApp中实现了。

注:CWinApp初始化比WinMain()先执行。


2. Chap 6, 窗口

*  消息映射宏

enum AfxSig // 函数签名标识
{
    AfxSig_end = 0,    // 结尾标识

    AfxSig_vv,    // void (void),比如,void OnPaint()函数
    AfxSig_vw,    // void (UINT),比如,void OnTimer(UINT nIDEvent)函数
    AfxSig_is,    // int    (LPTSTR),比如,BOOL OnCreate(LPCREATESTRUCT)函数
};

注:除了需要消息处理函数地址外,还需要知道函数的签名方式,以便正确调用相关函数。


* CWnd::WindowProc()

LRESULT CWnd::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    LRESULT lResult;
    if(!OnWndMsg(message, wParam, lParam, &lResult))
        lResult = DefWindowProc(message, wParam, lParam);
    return lResult;
}

* CWnd::OnWndMsg()

BOOL CWnd::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
    LRESULT lResult = 0;

    // 将命令消息和通知消息交给指定的函数处理
    if(message == WM_COMMAND)
    {
        if(OnCommand(wParam, lParam))
        {
            lResult = 1;
            goto LReturnTrue;
        }
        return FALSE;
    }
    if(message == WM_NOTIFY)
    {
        NMHDR* pHeader = (NMHDR*)lParam;
        if(pHeader->hwndFrom != NULL && OnNotify(wParam, lParam, &lResult))
            goto LReturnTrue;
        return FALSE;
    }

     ....

     // 处理其它消息类型

    // 在各类的消息映射表中查找合适的消息处理函数,找到的话就调用它
    const AFX_MSGMAP* pMessageMap;
    const AFX_MSGMAP_ENTRY* lpEntry;
    for(pMessageMap = GetMessageMap(); pMessageMap != NULL; pMessageMap = pMessageMap->pBaseMap)
    {
        ASSERT(pMessageMap != pMessageMap->pBaseMap);
        if((lpEntry = AfxFindMessageEntry(pMessageMap->pEntries, message, 0, 0)) != NULL)
                goto LDispatch;
    }


}

注1:WM_COMMAND, WM_NOTIFY是作为特殊message来处理的,其它都视同普通消息。

注2:整个系统中只有一个函数在处理消息,就是CWnd::OnWndMsg(),但是,所有类的消息映射不同,所以会有不同的行为。

注3:整个系统只有一个窗口类,对应一个窗口函数AfxWndProc()。


《把脉VC++》

 

1. Chap 10. 界面

* MFC处理的消息种类

WM_XXX(WM_COMMAND)除外,一般在CWnd中处理

WM_COMMAND,所有菜单、按钮、工具栏上发出的消息,通常和用户界面上的功能有关

控件通知消息:子窗口送给主窗口的WM_COMMAND通知消息???

 

2. 消息映射

* 避免switch,提供了自定义可能性

*几种不同的映射宏

ON_WM_XXX

ON_COMMAND

ON_CONTROL

ON_MESSAGE:自定义消息

 

 

Windows 10下Carla 0.9.15安装避坑指南:从下载到运行的全流程解析 本文详细解析了在Windows 10系统上安装和运行Carla 0.9.15自动驾驶仿真平台的全流程。内容涵盖从系统环境准备、资源下载、Python依赖安装,到首次启动验证及常见错误(如DLL缺失、显卡驱动问题)的深度解决方案,旨在帮助用户快速搭建稳定的开发环境,并运行第一个自动驾驶Python脚本。 阅读详情

相关推荐

STK与Matlab连接报错?手把手教你解决mexConnect函数执行问题(附完整避坑指南)

本文针对STK与Matlab连接时常见的“mexConnect函数执行”报错,提供了完整的诊断与解决方案。文章深入剖析了错误根源在于路径冲突或文件损坏,并手把手指导用户通过定位STK连接器文件、正确配置Matlab路径(包括使用addpath命令)以及执行初始化测试三步走策略,彻底解决问题。同时附上版本兼容性检查、安装避坑指南及构建稳健工作流的建议,帮助用户建立可靠的STK-Matlab联合仿真环境。

yolo5detector的博客 472

读书时间 2011/12/25 iPhone/iPad

《Objective-C基础教程》 1. Chap 7 深入了解XCode N多快捷键使用方法 《iPhone3 开发基础教程》 1. Chap 6 多视图应用 *内容视图与根视图控制器 * error: crash !  SwitchViewController::viewDidLoad... - (void)viewDidLoad {

printf1998的专栏 1470

Grok-1.5+Ollama企业级本地化部署与合规实践指南

本文详细介绍了Grok-1.5+Ollama企业级本地化部署与合规实践指南,重点分析了本地化部署的成本优势和数据主权保障。通过RTX 4090显卡的硬件选型、Ubuntu 22.04系统优化及部署流程中的关键陷阱规避,为企业提供了高效、安全的AI模型部署方案。特别适合金融、医疗等敏感行业。

weixin_29094539的博客 181

读书时间 05/25/2011 Linux C/C++ 孤儿进程

《Linux高级程序设计》2nd version,杨宗德 1. 杂问   2. 孤儿进程 [root@frank orphan]# cat orphan.c #include #include #include int main() {         pid_t pid;         if ((pid=fork())==-1) {

printf1998的专栏 419

一次渗透测试引发的Json格式下CSRF攻击的探索

一次渗透测试引发的Json格式下CSRF攻击的探索

weixin_52501704的博客 1048

CentOS 7.9安装python3.11

CentOS 7.9安装python3.11

leafseelight的专栏 1342

读书时间 2011/10/06 网络

Chap 8. ICMP   * 报文格式 类型+代码+Checksum   * 常用报文 echo request/echo response 目的地可达? 重定向(改变主机路由表)   * 拥塞Congestion 计算机太快;多台计算机联接单台router 内存缓冲机制 源站抑制报文:为丢弃的每一个包使用,不过较少使用   Chap 9. 无分为和子网地址扩展

printf1998的专栏 267

Dinic算法的复杂度分析及证明

一般图 复杂度主要取决于dfs增广的过程。 将dfs部分的复杂度分成两部分来分析:1)修改增广路上边的流量。至多会增广mmm次,一条增广路的长度至多是nnn,所以这一部分的复杂度是O(nm)O(nm)O(nm)。2)dfs遍历时找增广路失败时经过的边。由于一旦从某条边出发找最短路失败了,我们就不会再走那条边(当前弧优化),所以这一部分的复杂度是O(m)O(m)O(m)的。故而dfs增广的复杂度是O...

这个博客已经搬到了:zhongyuwei.github.io 4391

读书时间2011/06/25 - 1 iPhone/iPad相关

Apple's iPhone Online Videos   Introduction to Objective-[C and Cocoa Touch   0. 杂想杂问:   Milestone升级为Android 2.2,可支持Hot Spot功能! http://bbs.spforum.net/viewthread.php?tid=324923   *** Objecti

printf1998的专栏 303

Python+OpenCV实现游戏自动刷怪脚本(附完整代码)

本文详细介绍了如何使用Python和OpenCV开发游戏自动刷怪脚本,涵盖环境搭建、图像识别、行为决策引擎及反检测优化等关键技术。通过完整的代码示例,帮助开发者实现从简单脚本到智能自动化系统的升级,提升游戏效率。

weixin_29032489的博客 517

Steam游戏服务器攻防全景解读——如何构建游戏级抗DDoS防御体系?

当检测到TCP/UDP混合攻击时,应触发预设的熔断策略:优先保障游戏大厅服务的UDP 27015端口,临时限制匹配系统的TCP连接数。针对Steam游戏服务器特有的UDP 4380端口,需配置协议合规性检查规则:限制数据包长度不超过128字节,强制校验请求来源IP的真实性。Steam游戏服务器的防护需要平衡安全性与玩家体验,通过协议深度解析、智能流量调度和服务端加固的三维防御体系,可构建游戏行业专属的抗DDoS护城河。答:采用弹性防护方案,基础防护带宽保持50Gbps,遭遇攻击时自动扩展至T级清洗能力。

2501_91486804的博客 1453

计算机专业英语读书报告,【英语读书报告】 英文读书报告_英文 读书报告_东城教研...

英语读书报告关于英语读书报告,东城教研小编了解到:只有每天坚持读了一点点原著. 言归正传,这一年一共读了52本书,其中英文25本,中文27本.英文书大部分是在扇贝上读的,中文书大部分是从图书馆借的.如下图.接下是我的每个月的读书量还有我这一年读过的书的名XXXXXXXXXX英语是世界上使用最广泛的语言,学好英语不仅出国旅行方便,对于在社会上发展也是有极大帮助,而用英语写作也不是一件容易的事,英语读...

weixin_39663933的博客 351

Silvaco Atlas新手入门:从安装到第一个半导体器件仿真(附DeckBuild配置)

本文为Silvaco Atlas新手提供了一份从软件安装、DeckBuild环境配置到完成第一个半导体器件仿真的实战指南。通过构建一个经典的PN结二极管案例,详细讲解了Atlas仿真语句的语法、核心命令顺序以及结果调试与可视化方法,帮助初学者快速上手并理解TCAD仿真流程。

sql99的博客 332

我的2011

2011是一个充满激情的1年,在这1年里,我组建了一只拥有生命力、活力、激情、拼搏的团队。团队整体的平均年龄不到25岁。这个团队是一个年轻的团队。回忆2011这一年,有许多激动,也有许多悲伤。               2011年这一年,将对我今后的发展可能起了决定性因素。因为在这一年我做了许多事情,很多事情都把自己推向了风口浪尖。我不再是我!面对整个团队,10多个人,他们今后的发展都和我仅仅的

张建波专栏 1602

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

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

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

计算机系一班班会,天津科技大学计算机学院读书节10102i1班班会.ppt

天津科技大学计算机学院读书节10102i1班班会计算机学院读书节 网络(1)班主题班会 书香沁人 ---读书节活动策划 ...

weixin_39895684的博客 241

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

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

C++杂记/读书 2011/12/19

## 《Linux C编程》华清远见 1. 文件操作 * sync(), fsync() sync()只是将所有修改过的block的buffer排入write queue,并不实际执行I/O操作;             // Q:who/when执行? 系统进程update会每隔一定时间间隔(30秒)调用一次sync(),以确保buffer定期refresh。

printf1998的专栏 373

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Machine Learning读书会集锦(20138月25日第7期的PPT已发布)

Machine Learning读书会集锦(第7期本周日2013年8月25日举办) 读书会简介性质:面向IT从业人员的公益学术讲座&线下交流圈子受众:3成学生,7成工程师时间:每年4、6、8、10月举办主题:围绕“机器学习”展开,但不局限于机器学习,主讲人自拟具体主题名称宗旨:革新学术,砥厉品行,共同探讨,相互学...

weixin_30325071的博客 193

我的读书清单(持续更新)

我的读书清单(持续更新) 2017-05-31 《一千零一夜》2006(四五年级) 《中华上下五千年》2008(初一) 《鲁滨孙漂流记》2008(初二) 《钢铁是怎样炼成的》2009(初二) 《坏蛋是怎样炼成的》2010(初三) 《平凡的世界》2011(高二) 《悲惨世界》2012(高二) 《穆斯林的葬礼》2012(高二) 《红楼梦》2012(高二) 《边城》 《傲慢与偏见》(英汉双语...

weixin_30563319的博客 381

你读书有多快?

传说透明思考(gigix)每天都要读10万字的书。 这个传说是什么意思?是每天都会打开一本不少于10万字的书呢?还是每天都要读过10万字? 前者太容易了,像我这样的文盲也轻轻松能做到。那大概应该是后者了。 一天24小时,睡觉8小时。 如果用16个小时来阅读,读完10万字,每小时6250字,每分钟104字。 如果用8个小时来阅读,每分钟208字,每两秒钟不能少于7个字。还能思考么? 如果...

weixin_34414196的博客 189

EEChina发布“2011中国电子工程师生…

EEChina 电子工程网(原嵌入式公社)今日发布“2011中国电子工程师生活与工作状况调查”结果。本次调查从2011年4月25日开始,至5月30日结束,共收集到有效问卷1571个。 本次调查问卷包含40个问题,涉及中国电子工程师工作、学习、生活的方方面面。调查结果描述了中国工程师群体的特征,揭示了他们的工作习惯、学习方式、兴趣爱好、品牌认同等情况,这些信息对于电子工程人员了解自身群体或供货商

Rabbit_Nick的专栏 680

python+flask计算机毕业设计基于web的读书会活动服务平台(程序+开题+论文)

本研究将围绕基于Web的读书会活动服务平台的核心功能展开,具体包括以下几个方面:首先,构建用户系统,实现用户注册、登录、个人信息管理等功能,确保用户数据的安全与隐私保护;通过该平台,旨在实现读书会活动的线上化、智能化管理,提高活动组织效率,增强参与者之间的互动与交流,从而激发人们的阅读兴趣,促进知识的传播与共享。其次,平台上的多样化功能,如用户管理、团队信息展示、活动报名与签到等,能够提升活动的组织效率与用户体验,使读书会更加系统化、规范化。定义网页的结构和内容,如段落、链接、图片等。

sheji205的博客 874

读书笔记:番茄工作法,时间管理从现在做起

一直以来自己的时间管理还是有的,而且还是一直在坚持,可是一直一来都是感觉时间利用率不高,工作的效率也不高. 看了番茄工作法之后总结了下,主要由一下几点: 集中自己的注意力,减少被打断的次数 现在自己对于各种打断的处理很差,具体指工作中的IM工具的使用上打断主要有:baiduhi群,QQ群,日程体现,邮件体现,别人来需求/技术问题等处理方法,对于现在的及时IM,每个25分钟查看一次消息,并对消...

weixin_30293135的博客 65

(2011.10.19-2011.11.15)二十八天的学习小记

二十八天的学习小记(2011.10.19-2011.11.15)         继上次写学习小记(http://blog.youkuaiyun.com/neicole/article/details/6887312)又过了二十八天了,这些天的学习状态,感觉还行,也终于把想完成的任务完成了,在2011.10.25(大二的学习计划) http://blog.youkuaiyun.com/neicole/article/d

Neicole ~~ 学习旅程(大学) 1074

不辜负每一个日出——Leo2011年总结

有年末写总结的习惯,昏睡两天之后,我今天(2012年1月2日)对自己去年的工作、学习与生活做个回顾。2000年开始,我的回顾都是以时间日记为基本的,每天24小时都有记录。回首来时路,我们有不同的收获,也只有在回顾的基础上,我才能更有效的展望新的一年。   回顾关键词:时间管理图书写作、微博、企业家基础阅读、书评、北航教授、管理咨询、跆拳道黑带   时间管理图书写作 上半年重点之一是与好友

张大志Leo 4411

利用python进行数据分析 笔记_《利用python进行数据分析》读书笔记--第十章 时间序列(一)...

stamp = ts.index[2]print ts[stamp],'\n'#还有更方便的用法,传入可以被解释为日期的字符串print ts['1/10/2011']print ts['20110110'],'\n'#对于较长的时间序列,只需传入“年”或“年月”即可轻松选取数据切片long_ts = Series(np.random.randn(1000),index= pd.date_rang...

weixin_39615991的博客 160
上一篇: 读书时间 2011/10/23
下一篇: 读书时间 2011/11/13
printf1998
博客等级 码龄16年 14粉丝 196原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值