读书时间 2011/10/23

看28377代码笔记 使用的是20MHz外部晶振,为取200MHz系统时钟,倍频设为20,分频设为2,这样sysclock = 20MHz * 20 / 2,正好200MHz。注意:SPISTE配置成普通的GPIO端口,是为了更好控制芯片,配置芯片的时序。FMULT_0:小数点位数,小数只能有0,0.25,0.5,0.75四个选择。XTAL_OSC:表示使用外部晶振。GPIO_MUX_CPU1:复用类型。GPIO_MUX_CPU1:复用类型。PLLCLK_BY_2:表示2分频。IMULT_20:表示倍频数。 阅读详情


Chap 6. 框架中的窗口

1. 窗口框架总结

* example.cpp中定义theApp
CMyApp theApp;
Q:此步骤中,有没有任何初始化动作完成?

A:Yes。对模块变量参数进行初始化,在THREAD_LOCAL中保存,如主窗口指针等等。


* WinMain.cpp中的WinMain()是入口

int __stdcall WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPTSTR lpCmdLine, int nCmdShow)
{
    ASSERT(hPrevInstance == NULL);

    int nReturnCode = -1;
    CWinThread* pThread = AfxGetThread();    ////// 这些函数生效的原因是在WinApp::WinApp()中相关thread/app指针已经存储在THREAD_LOCAL中
    CWinApp* pApp = AfxGetApp();

    // 类库框架内部的初始化
    if(!AfxWinInit(hInstance, hPrevInstance, lpCmdLine, nCmdShow))
        goto InitFailure;

    // 应用程序的全局初始化
    if(pApp != NULL && !pApp->InitApplication())
        goto InitFailure;

    // 主线程的初始化:完成窗口类注册,窗口生成,窗口显示/更新
    if(!pThread->InitIntance())
    {
        nReturnCode = pThread->ExitInstance();
        goto InitFailure;
    }

    // 开始与用户交互,运行消息循环
    nReturnCode = pThread->Run();

InitFailure:
    return nReturnCode;
}

注:若CMyApp对象未定义,在主线程初始化的时候会出错,原因其实是pthread为空指针:Access Violation.


* CMyApp::InitInstance()

BOOL CMyApp::InitInstance()
{
    m_pMainWnd = new CMyWnd;
    ::ShowWindow(*m_pMainWnd, this->m_nCmdShow);
    ::UpdateWindow(*m_pMainWnd);
    return TRUE; // 返回TRUE进入消息循环
}

注:CMyWnd()实例化的时候,完成对窗口类注册


* CMyWnd::CMyWnd()

CMyWnd::CMyWnd()
{
    LPCTSTR lpszClassName = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW,
        ::LoadCursor(NULL, IDC_ARROW), (HBRUSH)(COLOR_3DFACE+1));

    CreateEx(WS_EX_CLIENTEDGE, lpszClassName,
        "框架程序创建的窗口", WS_OVERLAPPEDWINDOW,
        CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL);
}

注1:AfxRegisterWndClass()完成窗口类注册,并把窗口函数指向::DefaultWindowProc

注2:CreateEx()通过hook,完成了当前生成窗口函数的修改,指向::AfxWndProc函数,此函数实现了消息处理函数的分派 --------- 即调用CWnd::WindowProc()函数的功能


* WINCORE.CPP::AfxWndProc()

///////////////////////////////////////////////
// 分发消息

LRESULT __stdcall AfxWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
    CWnd* pWnd = CWnd::FromHandlePermanent(hWnd);
    ASSERT(pWnd != NULL);
    ASSERT(pWnd->m_hWnd == hWnd);
    return AfxCallWndProc(pWnd, hWnd, nMsg, wParam, lParam);
}


2. 消息映射


* CCmdTarget

#_AFXWIN.h

////////////////////////////////////////////////////
// CCmdTarget类(命令目标)

class CCmdTarget : public CObject
{
    DECLARE_DYNCREATE(CCmdTarget);
public:
    CCmdTarget();

    DECLARE_MESSAGE_MAP()
};

#cmdtarg.cpp

CCmdTarget::CCmdTarget()
{ }


/////////////////////////////////
// 实现消息映射的代码
const AFX_MSGMAP* CCmdTarget::GetMessageMap () const
{
    return &CCmdTarget::messageMap ;
}
const AFX_MSGMAP CCmdTarget::messageMap =
    { NULL, &CCmdTarget::_messageEntries[0] };
const AFX_MSGMAP_ENTRY CCmdTarget::_messageEntries[] =
{
    // 一个消息也不处理
    { 0, 0, 0, 0, 0, (AFX_PMSG)0 }
};
注:由于CCmdTarget是顶层类,没有父类,故不能使用BEGIN_MESSAGE_MAP()及END_MESSAGE_MAP()两个宏。



Dify 第 10 篇 Dify 知识库手把手案例 本文介绍了如何利用Dify平台构建《阿里巴巴Java开发手册》智能助手。首先详细讲解了知识库创建的完整流程,包括文档上传、分段设置(推荐父子分段+段落上下文)、索引方式选择(高质量+混合检索)等关键步骤。随后指导用户进行分段质量检查和召回测试,强调TopK和Score参数的调优策略。接着演示了Chatflow应用开发过程,通过知识检索节点和LLM节点的配置,实现从知识库智能获取答案的功能。最后展示了应用发布和实际使用效果,成功实现了基于知识库的问答交互。案例采用DeepSeek-R1大模型,并支持答案引用显 阅读详情

相关推荐

避坑指南:ZYNQ MPSOC QSPI固化时MT25QU256闪存的特殊配置

本文针对Xilinx ZYNQ UltraScale+ MPSoC平台,详细解析了使用Vitis工具将BOOT.bin固化至Micron MT25QU256ABA QSPI NOR Flash时的特殊配置与避坑指南。重点阐述了Init文件的真实作用、电压与频率的精确匹配策略,以及针对该闪存型号的初始化序列,帮助工程师解决烧录失败、启动异常等常见问题,确保系统可靠启动。

weixin_29175469的博客 270

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

《iPhone 3开发基础》chap 3 处理基本交互 1. Button Fun示例 总结 * Outlet 实义在controller中的UIKit实例,通常用于在代码中访问*.xib中定义的UI元素 是从controller输出,故outlet 通过^mouse配置的 * Action Controller中定义的响应*.xib中界面元素event handle

printf1998的专栏 288

笔记本电脑更换主板后出现2203:System configuration is invalid,以及2201、2202系统错误的解决

主板更换后刷新S/N

晓夏IT笔记 3517

读书时间 2011-05-23 Linux/C/++

《Linux高级程序设计》2nd version,杨宗德   1. 杂问 * http://www.maigoo.com/maigoo/134qb_index.html * 写一个Chat的例子(Tica) * server-side目前使用的主要工具及版本:内核?GCC/GDB? * 目前用到的所有server-side开发需要的工具、环境、流程与步骤等等? * 调试与跟踪相关的机

printf1998的专栏 433

VSCODE编辑+EIDE插件调试+STM8_Debug插件调试+IAR_STM8工具链编译开发项目

1. 安装 在VS CODE安装EIDE、STM8-Debug插件 2. 使用 EIDE 创建一个 8/16 Bit MCU 项目 新建虚拟文件夹,把工程外部的文件添加进虚拟文件夹,实现工程和源文件之间的关系,而不用实际把源文件复制到工程目录下。 EIDE工程和源文件实现分开放置,EIDE(EIDE工程)、EWSTM8(IAR STM8工程)、Project(ST Visual Develop工程) 选择工具链 烧录工具选择 头文件包含目录 添加宏定义 3. 编译 4. 使用STM8

TrueLink的博客 5500

基于Python的网络拓扑图绘制

最近写论文画了许多图,在这里记录一些。当然,如果仅仅是展示性图片的话也可以使用visio,但是这里我仍然想探究一下如何使用pyhon画出美观的网络拓扑图。(1)根据邻接矩阵画出网络拓扑图(2)画出网络拓扑图,并对节点和链路进行表示,包括对节点和链路的标号,颜色区分,以及尺寸区分。

m0_53961910的博客 7093

林雨阁读书会《老子》心得

原文地址:大家一起分享林雨阁读书会《老子》心得作者:林雨阁林雨阁读书会《老子》心得林雨阁从2011年8月开始读《老子》/《道德经》,我们每周读一章,共用了81周,一直读到2013年7月底才完成81周。感叹一下!真的是不容易,我们选择的时间是周日早上9:15;我们的读书会场地在长宁区娄山关路这边,来参加我们活动的有从川沙,金桥,金山,宠,杨浦,浦东,宝山等等上海各个区,路程上都...

weixin_34270865的博客 171

【一起学UniGUI】--UniGUI的部署选项(5)

uniGUI支持Windows平台下所有主要部署选项。 1.Standalone Server (独立服务器) 最简单的部署方法是独立服务器。在这种模式下,应用程序服务器像桌面应用程序一样直接运行。它也是用于调试应用程序的模式。运行应用程序可执行文件后(它是一个EXE文件),它将最小化到托盘图标,并运行到用户手动终止为止。见下图: 一个独立的应用程序可以...

5776

23 岁那年你正处在哪个状态?现在呢?

这是我在http://www.zhihu.com/看到的一个问答。 看完之后真的很有感触,选取投票最高的

zhouyunxuan的专栏 2万+

基于SVD矩阵分解的用户购物篮预测分析实战

基于SVD矩阵分解的用户购物篮预测分析实战

360

机器学习特征选择-t检验

在特征选择的过程中通过计算检验统计量值,比较特征之间的统计量的大小,并降序排列,选取统计值较高的特征,从而起到去除差别小的特征(此差别小的特征难以区分不同的额类别)的目的。 以t检验(Student's t test)为例: 假设检验 通过比较两类样本的随机变化,通过计算其p值决定是否拒绝零假设,也即是说:通过计算p值,若p值小于某一阈值则认为两个样本具有显著差异,两个样本是不同的,此时拒绝...

heda3的博客 6700

《Data-intensive Text Processing with MapReduce》读书笔记(入口)2011.7.23最后更新

本文是《Data-intensive Text Processing with MapReduce》一书(豆瓣链接)读书笔记博文列表。 这是我的第一个读书笔记,其中翻译与表述不当之处,望广大网友不吝赐教。 目前的状态:正在看书,边看边写,随着看书进度更新读书笔记。 虽然进度上没有绝对保证,但将读书笔记以博文的方式发布出来,是对自己的督促。 无论如何,我将认真研读并撰写报告。更新速度为3天左...

weixin_34290352的博客 119

CelebA-HQ数据集下载【详细明了版】分辨率包括【64,128,256,512,1024】

CelebA-HQ 是在ICLR2018上,nVidia发表了一篇名为Progressive Growing of GANs for Improved Quality, Stability, and Variation的论文,文中通过训练高分辨率GAN生成了一个新的人脸数据集CelebA-HQ.CelebA是港科大汤晓鸥组收集的人脸数据集(总共200k图片),包括了人脸特征点(landmark),人脸属性(attribute)等信息,详细介绍参考链接[1]和[2]

zik的博客 1万+

世界读书日 | 大佬们在看什么书?我们替你问了一下

世 界 读 书 日4 月 23 日 \\ 星期六你有多久没有读书了?你有多久没有读完一本书了?如果你半夜醒来,发现自己已经好长时间没读书,而且没有任何负罪感的时候,你就必须知道,你已经堕落了。——陈平原4月23日世界读书日,让我们有了邀请大家分享阅读的机会!这次我们联系了 14 位不同领域的老师,共同整理了这份书单。如果你还没有阅读计划,那么不妨参考一下...

图灵教育 267

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

C++读书笔记:C++时间&日期

C++ 标准库没有提供的日期类型。 C++ 继承了 C 语言用于日期和时间操作的结构和函数。 为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 头文件。 有四个与时间相关的类型:clock_t、time_t、size_t 和 tm。 类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。 结构类型 tm 把日期和时间以 C 结构的形式保存,tm 结构的定义如下: struct tm { int tm_sec; // 秒,正常范围从 0 到 59,但

weixin_43738789的博客 146

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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

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

weixin_30563319的博客 381

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

你读书有多快?

传说透明思考(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

(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

利用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

23 岁那年你正处在哪个状态?现在呢?

目录(?)[+] 匿名用户匿名用户Ethan Chiu屌丝要变高富帅匿名用户霍克明互联网小菜罗登Storyteller大雄热爱编程曲小白苏林金融皮条客负能量导师GayScripthttpreaddoubancomcolumn27夏靖龙刻奇产品咖李文legalyoga practitionercity walker高嵘死理性派 这是我在知乎看到的一个问答。 看完之后真的很有

舒哥的blog 2625

如何掌控自己的时间和生活

今天跟大家分享的是《如何掌控自己的时间和生活》中的笔记,下面是我当时的阅读记录,很不错的一本书:   #每天一本书#,114天,2011年4月10日,《如何掌控自己的时间和生活》评分4分。这本书的核心观念就是“如何掌控”,想掌控,必须从规划目标开始,然后按ABC排序规则排序。到任何时间都要以A级任务为开始行动目标,想办法减少或剔除C级任务。必须坚持每天列清单,进行排序。每天留出15分钟进...

冨彗雙脩 垂裕後崑 289

2011年总结,这一年是蜕变的一年(一)

十二月了,真tm的快啊,2011年就要结束了,总结一下吧,注定是变化的一年,年初还在完美做游戏的活动, 1月中旬完美搬家,搬到了大屯路东,虽然离上地远多了,但是办公环境还真不错,楼很宽敞,工位也很给力,椅子舒服,配套设备先进。年会很让人失望,一桌6瓶啤酒,两瓶红酒,基本也就湿...

chige2104的博客 267

【书单】-综述

22年入手了一个iReader阅读器,用来在上下班的通勤时间里读一些书,书目包括技术类和非技术类。时至今日,已过去大概有1年多时间,以下是近来年读的一些书单,读书笔记和书评会慢慢来更新。欢迎同道中人前来评论或者推荐优秀的图书,独乐乐不如众乐乐。

记忆、理解、表达和融会贯通。 2059

Android源码内核设计思想读书笔记

【读书笔记】 第一篇 Android编译篇读书笔记 第一篇 Android编译篇 第一章 Android系统简介 1Android各版本代号及发布时间 2 Android系统的特点 3 Android系统框架 第二章 Android源码下载 第三章 Android编译系统第一章 Android系统简介1.1Android各版本代号及发布时间: Code Name Version Api

在路上 805
上一篇: 读书时间 2011/10/22
下一篇: 读书时间 2011/10/25
printf1998
博客等级 码龄16年 14粉丝 196原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值