emwin 錯誤使用控制項函式導致宕機現象

2022-06-30 11:57:09 字數 3187 閱讀 9440

@2018-10-15

導致宕機的**示例如下

1/**

2* @brief widget id define

3* @

16*/

1718

1920/**

21* @brief widget resource list

22* @,

27 ,

28 ,

29 ,

30 ,

31 ,

32 ,

33//

user start (optionally insert additional widgets)

34//

user end

35};

3637

38static

void _cbdialog(wm_message *pmsg) {

39wm_hwin hitem;

40int

ncode;

41int

id;42

//user start (optionally insert additional variables)

43//

user end

4445

switch (pmsg->msgid) {

46case

wm_init_dialog:

47//

48//

initialization of 'ex-factory date'

49//

50 hitem = wm_getdialogitem(pmsg->hwin, id_text_0);

51 text_settext(hitem, "

出廠日期");

52 text_setfont(hitem, &gui_fonthz16);

53 text_settextalign(hitem, gui_ta_left |gui_ta_vcenter);

54//

55//

initialization of 'ex-factory number'

56//

57 hitem = wm_getdialogitem(pmsg->hwin, id_text_1);

58 text_settext(hitem, "

出廠編號");

59 text_setfont(hitem, &gui_fonthz16);

60 text_settextalign(hitem, gui_ta_left |gui_ta_vcenter);

6162

edit_settext(hitem, "出廠編號");

63edit_settextalign(hitem, &gui_fonthz16);

64edit_setfont(hitem, gui_ta_left | gui_ta_vcenter);

65//

66//

initialization of '9999-99-99'

67//

68 hitem = wm_getdialogitem(pmsg->hwin, id_edit_0);

69 edit_settext(hitem, "

9999-99-99");

70 edit_settextalign(hitem, gui_ta_left |gui_ta_vcenter);

71edit_setfont(hitem, gui_font_16_1);

72//

73//

initialization of '123456789'

74//

75 hitem = wm_getdialogitem(pmsg->hwin, id_edit_1);

76 edit_settext(hitem, "

123456789");

77edit_setfont(hitem, gui_font_16_1);

78 edit_settextalign(hitem, gui_ta_left |gui_ta_vcenter);

7980

text_settext(hitem, "123456789");

81text_setfont(hitem, gui_font_16_1);

82text_settextalign(hitem, gui_ta_left | gui_ta_vcenter);

83//

84//

initialization of 'factory version'

85//

86 hitem = wm_getdialogitem(pmsg->hwin, id_text_2);

87 text_settext(hitem, "

出廠資訊");

88 text_setfont(hitem, &gui_fonthz16);

89 text_settextalign(hitem, gui_ta_left |gui_ta_vcenter);

90//

91//

initialization of 'back'

92//

93 hitem = wm_getdialogitem(pmsg->hwin, id_button_0);

94 button_settext(hitem, "返回"

);95 button_setfont(hitem, &gui_fonthz24);

96//

user start (optionally insert additional code for further widget initialization)

97//

user end

98break

;99

上段code中紅色**為控制項函式誤用,即text控制項的initialize部分使用了edit控制項的函式,edit控制項的initialize部分使用了text控制項的函式,這種情況編譯器不會報警,但實際操作現象出現宕機

使用WebView控制項時執行出現錯誤提示

在使用webview控制項時,執行過程中單擊沒有效果,並提示以下錯誤 qsslsocket cannot call unresolved function sslv23 client method qsslsocket cannot call unresolved function ssl ctx ...

C 函式模板特化導致的多重定義鏈結錯誤

標題說的可能不是很清楚,解釋一下,函式模板,一般都是放在標頭檔案裡面,所以有些時候,我也會做乙個特化,也放在這個標頭檔案裡面,當這個標頭檔案出現多次的包含之後,就會出現鏈結多重定義的錯誤,先說乙個例子,如下 有檔案 header.h ifndef header define header templ...

inline函式使用容易導致出錯的問題

對於inline函式,首先應該要短小 inline只是對編譯器的乙個建議,編譯器是可以忽略的 其次inline函式的定義一定要與呼叫它的部分在同乙個原始檔裡,不同的原始檔可以分別定義乙個相同inline函式,內容都可以不同 不違反重複定義原則 但是這樣做會引起程式呼叫的不確定性,應該避免這種情況。為...