@2018-10-15

导致死机的代码示例如下

 /**
* @brief widget ID define
* @{
*/ #define ID_WINDOW_0 (GUI_ID_USER + 0x00)
#define ID_TEXT_0 (GUI_ID_USER + 0x01)
#define ID_TEXT_1 (GUI_ID_USER + 0x02)
#define ID_EDIT_0 (GUI_ID_USER + 0x03)
#define ID_EDIT_1 (GUI_ID_USER + 0x04)
#define ID_TEXT_2 (GUI_ID_USER + 0x05)
#define ID_BUTTON_0 (GUI_ID_USER + 0x06) /**
* @}
*/ /**
* @brief widget resource list
* @{
*/ static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
{ WINDOW_CreateIndirect, "factoryWindow", ID_WINDOW_0, , , , , , 0x0, },
{ TEXT_CreateIndirect, "ex-factory date", ID_TEXT_0, , , , , , 0x64, },
{ TEXT_CreateIndirect, "ex-factory number", ID_TEXT_1, , , , , , 0x64, },
{ EDIT_CreateIndirect, "9999-99-99", ID_EDIT_0, , , , , , 0x64, },
{ EDIT_CreateIndirect, "", ID_EDIT_1, , , , , , 0x64, },
{ TEXT_CreateIndirect, "Factory Version", ID_TEXT_2, , , , , , 0x64, },
{ BUTTON_CreateIndirect, "Back", ID_BUTTON_0, , , , , , 0x0, },
// USER START (Optionally insert additional widgets)
// USER END
}; static void _cbDialog(WM_MESSAGE * pMsg) {
WM_HWIN hItem;
int NCode;
int Id;
// USER START (Optionally insert additional variables)
// USER END switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
//
// Initialization of 'ex-factory date'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_0);
TEXT_SetText(hItem, "出厂日期");
TEXT_SetFont(hItem, &GUI_FontHZ16);
TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
//
// Initialization of 'ex-factory number'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_1);
TEXT_SetText(hItem, "出厂编号");
TEXT_SetFont(hItem, &GUI_FontHZ16);
TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER); EDIT_SetText(hItem, "出厂编号");
EDIT_SetTextAlign(hItem, &GUI_FontHZ16);
EDIT_SetFont(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
//
// Initialization of '9999-99-99'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_0);
EDIT_SetText(hItem, "9999-99-99");
EDIT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
EDIT_SetFont(hItem, GUI_FONT_16_1);
//
// Initialization of '123456789'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_EDIT_1);
EDIT_SetText(hItem, "");
EDIT_SetFont(hItem, GUI_FONT_16_1);
EDIT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER); TEXT_SetText(hItem, "123456789");
TEXT_SetFont(hItem, GUI_FONT_16_1);
TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
//
// Initialization of 'Factory Version'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_TEXT_2);
TEXT_SetText(hItem, "出厂信息");
TEXT_SetFont(hItem, &GUI_FontHZ16);
TEXT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
//
// Initialization of 'Back'
//
hItem = WM_GetDialogItem(pMsg->hWin, ID_BUTTON_0);
BUTTON_SetText(hItem, "返回");
BUTTON_SetFont(hItem, &GUI_FontHZ24);
// USER START (Optionally insert additional code for further widget initialization)
// USER END
break;

上段code中红色代码为控件函数误用,即TEXT控件的initialize部分使用了EDIT控件的函数,EDIT控件的initialize部分使用了TEXT控件的函数,这种情况编译器不会报警,但实际操作现象出现死机

emwin之错误使用控件函数导致死机现象的更多相关文章

  1. emwin之多次删除同一窗口导致死机现象

    @218-7-24 [现象] 使用函数 GUI_EndDialog() 多次删除同一窗口,导致系统死机,调试发现代码会卡死在以下两处 > 1.启动文件中 > 2.HardFault中断内 ...

  2. 因用了NeatUpload大文件上传控件而导致Nonfile portion > 4194304 bytes错误的解决方法

    今天遇到一个问题,就是“NeatUpload大文件上传控件而导致Nonfile portion > 4194304 bytes错误”,百度后发现了一个解决方法,跟大家分享下: NeatUploa ...

  3. Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件,导致发生错误。如果未分配 ID,请显式设置引发回发事件的控件的 ID 属性以避免此错误。

    ylbtech-Error-ASP.NET:由于未能找到 id 为“FileUpload1$gvFiles$ctl02$lnkBtnRemoveFile”的控件或在回发后将同一 ID 分配给另一个控件 ...

  4. 《zw版·delphi与halcon系列原创教程》zw版_THOperatorSetX控件函数列表 v11中文增强版

    <zw版·delphi与halcon系列原创教程>zw版_THOperatorSetX控件函数列表v11中文增强版 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就 ...

  5. 《zw版·delphi与halcon系列原创教程》zw版_THImagex控件函数列表

    <zw版·delphi与halcon系列原创教程>zw版_THImagex控件函数列表 Halcon虽然庞大,光HALCONXLib_TLB.pas文件,源码就要7w多行,但核心控件就是两 ...

  6. JACOB调用控件函数

    背景介绍: 使用JAVA程序,实现对系统已安装控件方法的调用. JACOB下载地址:http://danadler.com/jacob/ 使用方法: 1.将jacob.jar添加到项目工程中 2.将j ...

  7. 解决WebBrowser控件会导致应用程序占用内存居高不下问题

    WebBrowser 是一个 .NET 控件类,在 .NET Framework 2.0 版中新增.WebBrowser 类使用户可以在窗体中导航网页,下面我们来看在开发中碰到WebBrowser控件 ...

  8. 错误提示控件errorProvider

    http://www.cnblogs.com/suguoqiang/archive/2012/07/17/2596564.html 错误提示控件errorProvider VS显示: 核心代码: th ...

  9. 一种使用 sprintf 导致死机的情况

    @2019-02-26 [小记] char temp[10] float money; sprintf(temp, "0.2f", money); 以上使用方法可能导致死机,原因是 ...

随机推荐

  1. stark组件之pop页面,按钮,url,页面

      1.Window open() 方法 2.admin的pop添加按钮 3.stark之pop功能 3.知识点总结 4.coding代码 1.Window open() 方法 效果图   2.adm ...

  2. HTTPS的SSL证书配置

    SSL证书 TOMCAT7.0部署_百度经验https://jingyan.baidu.com/article/7082dc1c65066be40a89bda8.html SSL证书安装指引 - 青春 ...

  3. JMeter Exception: java.net.BindException: Address already in use: connect(转)

    转自:http://twit88.com/blog/2008/07/28/jmeter-exception-javanetbindexception-address-already-in-use-co ...

  4. Windows 下面 redis 发布为服务的官方方法

    除了 NSSM 之外 另外一种方式 感觉还是很好用的 redis-server --service-install redis.windows.conf --loglevel verbose 感觉也可 ...

  5. Oracle转换函数

    ()--转换函数 --数字转换字符串 )||'分' from dual; ||'' from dual; ()--日期转字符串 select to_char(sysdate,'yyyy-mm-dd') ...

  6. 取消 Vue 中格式编译警告

    使用VS Code在学习 Vue 的过程中,博主是在2.0之后开始学习的,在写项目的时候发现控制台经常会报一大堆的警告,都是关于格式的,有时候少空格,有时候多空格,不胜其烦,出现这个问题是因为在初始化 ...

  7. oninput和onchange的区别

    菜鸟教程: oninput事件:HTML5标准事件 当用户向<input>中尝试输入时执行JavaScript: <input type="text" oninp ...

  8. idea的pom.xml中提示dependency‘’not found

    今天下午在更新svn上的项目到本地,发现pom文件中的如下依赖的version一直标红,鼠标放上去显示“dependency not found.” 同时检查了Maven Projects中该项目引入 ...

  9. valgrind 检查内存泄露

    https://www.oschina.net/translate/valgrind-memcheck

  10. java.util.concurrent.TimeoutException: Idle timeout expired: 300000/300000 ms

    Request idle timed out at 123000 ms. That means there was no activity (read or write) for 123000 ms ...