1.minigui中,可以在編譯配置選項中設定ui風格。改為flat後,編譯示例報錯。說是mydrawbutton沒有定義。後來看了原始碼,才解決。原來定義flat時,還有個_gray_screen巨集開關,決定是否定義mydrawbutton.
還是要多看原始碼來解決問題呀。
2.對話方塊程式,更改背景色。在執行時配置檔案minigui.cfg中。
3.編譯除錯命令。
qvfb -width 640 -height 480&
gcc -o dialogbox dialogbox.c -lpthread -lminigui -ljpeg -lpng -g
gdb ./dialogbox
對於core dump錯誤,如何除錯?如何生成core檔案?
4.20100608今天除錯成功選單,原來trackpopmenu要放在insertmenu之後才起效果,包括stripmenu也要在insert之後。
選單成功建立了,但還是有些疑問的,選單的資源釋放是什麼做的?
5.20100609今天建立子對話方塊成功,但中文顯示亂碼。後來查明是該.c原始碼檔案,儲存方式為utf—8.解決:另存檔案,選用gb2312就可以了。(linux預設是utf-8編碼方式,gedit可以另存,vim暫不知如何解決)
**:vim語言設定,煩啊,編碼可能一直是作業系統要處理的乙個麻煩問題.
我的linux上有不少的gb2312 的檔案.沒法子,只有讓vim也支援他啦。
如果你的系統你自己的主目錄中有.vimrc就加入下面二行,如果沒有,就建乙個這個檔案.
let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936
記的儲存哦.然後在用vim開啟看看,utf8和gb2312都沒有問題.
ldd -v 程式名檢視程式使用的png的lib庫版本。
機器中有二個版本的png的lib庫,衝突。想法解決掉乙個。
6.core dump. 幾則
gdb使用技巧
gdb的功能強大,與帶
gui的偵錯程式相比有過之而無不及,使用也就相對複雜一些。一方面是它的親和力稍差,畢竟是給程式設計師用的,不用做得傻瓜化。另外一方面它的命令太多,我們常常淺嘗輒止,只記得幾個常用的命令就知足了,沒有充分發揮它的潛力。今天要除錯一段
arm彙編**,按常規方法除錯彙編**非常麻煩,花了點時間看
gdb的幫助,發現幾個技巧比較有用,這裡做個筆記。 1.
使用自定義命令。
gdb內建的命令很多,這些命令都遵循
unix
的一貫原則,每個命令都只有乙個基本功能。命令的粒度比較細,可重用性會更高。自己要去組織這些基本命令,以形成功能更強大的命令。這可以用
define
來實現,如:
(gdb) define nid
type commands for definition of "nid".
end with a line saying just "end".
>ni
>disassemble $pc $pc+16
>end 2.
多視窗。
gui偵錯程式可以同時開啟多個小視窗,分別顯示暫存器、彙編和源**等。在
gdb裡也可以做到,但同時最多只能顯示兩個視窗,試了一下也很方便的。基本命令如下:
a)`layout src'
僅顯示源**視窗。
b)`layout asm'
僅顯示彙編**視窗。
c)`layout split'
顯示源**和彙編**視窗。
d)`layout regs'
顯示暫存器和源**視窗,或者暫存器和彙編**視窗。
e)`layout next`
和`layout prev'
切換視窗。
f)ctrl + l
重新整理螢幕。
g)`c-x 1'
單視窗模式。
h)`c-x 2'
雙視窗模式。
i)`c-x a'
回到傳統模式。
~~end~~
7.combox的顏色設定問題。
在對話方塊中,想要將對話方塊中的控制項背景色設為對話方塊的背景色,以達到透明的感覺。其它視窗,通過getdlgitem獲取控制代碼,直接設定背景色即可。
但combox卻只能設定到按鈕底部的背景色。google後,得知,要分別獲取到combox的edit,listbox再設定背景色才可。
另外,獲取edit,listbox的控制代碼,需要傳送訊息cb_getchildren來得到。最後,下拉按鈕仍有一部分未設定成背景色,之後再想法解決吧。
搞了半天 看了一下源**才明白 這是comboboxctrlproc函式中的
case cb_getchildren:
wparam引數就是combobox子控制項edit的控制代碼
ebsoft 發表於: 2009/04/07 01:41pm
我也在做這個 請幫忙說一下具體的方法
多謝
twodiamond 發表於: 2009/04/02 08:45pm
壇主,請教:如果不顯式採用訊息機制,是否可以通過下面的呼叫獲得編輯框的控制代碼:
hcombobox=createwindowex( ctrl_combobox,
"",ws_child | ws_visible | ws_tabstop | cbs_spinlist | cbs_notify,//istyle
0, //iexstyle
id,x, y, w, h,
hparent,
adddata);
pdata = (pcomboboxdata)getwindowadditionaldata2(hcombobox);
hedit = pdata->editcontrol;
即通過 getwindowadditionaldata2 來獲得視窗hcombobox的第2個附加資料,從源**上看,第2個附加資料就是控制項的位址,根據這個位址來索引編輯框的控制代碼;
多謝!kongming 發表於: 2009/04/02 07:20pm
向組合框控制項傳送 cb_getchildren 訊息。
twodiamond 發表於: 2009/04/02 06:02pm
多謝指點,請問哪個函式能獲得編輯框子控制項的控制代碼,多謝版主!
kongming 發表於: 2009/04/02 05:52pm
組合框中的編輯框是它的子控制項,你應該拿到編輯框的控制代碼然後再設定編輯框的背景色。
8.c++初始化機制帶來的minigui呼叫問題。
近期同事幫我重做minigui下的控制項。由於我這邊要用c++,所以在改到c++時,發現要麼處理有問題,要麼就是程式出錯。
看過原來的**後,才發現,在控制項獲取原基礎控制項的視窗處理過程時,需要額外設定opmask值。這一點,在minigui的示例**中,也未使用,可能它沒有考慮c++的情況吧。c++的初始化會導致opmask未設定,從而得不到想要的結果,甚至得到危險的操作結果。
而c中初始化,則沒有這個問題。
9.**整潔與邏輯(其實是相關的)
在使用控制項的過程中,發現控制項中的get_text處理有問題,其中的strlen函式會出錯。
跟了下,發現操作的指標資料和預想的不是乙個。這個指標是通過獲取附加資料得到的,沒有太仔細追控制項裡面的**了。**的書寫果然很重要。之前看裡面的**,就擔心會有這樣的問題。目前暫時給她改了下,重新獲取了附加資料。
10.介面函式指標型別(void*)[型別不安全,呼叫時不作檢查。。。。]
呼叫另乙個同事的運算元據庫的介面時,會導致函式其它變數值改變。最後找到原因。因為我呼叫的指標和他庫里操作的指標不是乙個型別。而它介面函式又全部用(void*)轉換了,所以這個過程中,如果上層不仔細檢查,編譯是不會檢查出問題的。而執行時,卻悄悄的影響了其它地方的記憶體。
仔細想想,這種(void*)的方式,如果是os的api的話,恐怕也是可以做點文章,讓程式崩潰還是可以的吧。
由此也得出,介面函式裡的指標型別,說型別安全還是有意義的。
前端開發程序
前端開發過程經歷了 前後端不分離 前後端半分離 前後端完全分離 三個階段。前後端不分離 在早期的時候前後端是不分離的開發模式,前端只負責書寫靜態頁面以及一些樣式,渲染真實資料的時候是在伺服器端進行頁面的拼裝,然後返回給客戶端渲染資料,在前後端不分離開發的時代前後端是屬於高度耦合的.如下圖 前後端半分...
開發進度月報
開發中的軟體系統的名稱和識別符號 分專案名稱和識別符號 分專案負責人簽名 本期月報編寫人簽名 本期月報的編號及所報告的年月 列出本月內進行的各項主要活動,並且說明本月內遇到的重要事件,這裡所說的重要事件是指乙個開發階段 即軟體生存週期內各個階段中的某乙個,例如需求分析階段 的開始或結束,要說明階段名...
iOS開發進製轉換
十進位制轉換為二進位制 param decimal 十進位制數 return 二進位制數 nsstring getbinarybydecimal nsinteger decimal decimal decimal 2 if binary.length 4 0 return binary 將十進位制轉...