欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
[轉帖]使用MiniGUI的一些FAQ

Q:如何安裝,配置及運行minigui?
A:請參考kongming老大寫(xiě)的文檔:MiniGUI編譯、安裝和配置,
http://www.minigui.org/ibmdocs/minigui-2/index.html

Q:運行mginit死機后,重起怎么不能再運行mginit?
A:請刪除/var/tmp/下的mginit和minigui,再重新運行.

Q:運行mginit后,鼠標亂動(dòng)怎么辦?
A:修改/usr/local/etc/Minigui.cfg中的mtype為你機子符合的類(lèi)型.
一般來(lái)說(shuō),首先要保證進(jìn)入minigui前,你的linux下能有正常的鼠標,這是可以將mtype改為
PS2,這樣問(wèn)題基本上能解決.記得如果失效后,最好重起
機子,這樣后面的配置才不會(huì )受前面的影響的.

Q:我編寫(xiě)一個(gè)應用程序,編譯時(shí)出現了很多undefined reference 的信息,怎么回事?
A:那是因為Makefile中沒(méi)有添加-lminigui 或者-lmgext來(lái)引用minigui的庫.

Q:我編寫(xiě)一個(gè)應用程序,編譯通過(guò),怎么不能運行?
A:必須先運行mginit,然后可以在那里的虛擬控制臺來(lái)運行應用程序.

下面的copy至以前的兩個(gè)文檔.
來(lái)自木子的 MiniGUI 使用心得
一.系統資源:
1.安裝不上例子程序時(shí),可嘗試修改[fbcon]defaultmode=800*600-16bpp。
2. minigui的resource在/usr/local/lib中,頭文件在/usr/local/include/minigui    中,配置文件在       /usr/local/etc/MiniGUI.cfg
二.函數:
1.觸發(fā)窗口重畫(huà)的消息,類(lèi)似VC的MSG_PAINT.
InvalidateRect(hWnd,NULL,TRUE);
2.CreateWindow("控件名稱(chēng)","Caption",風(fēng)格,ID,x,y,長(cháng),寬,hwnd,0);
3.獲取和設置對話(huà)框中控件的值:
    GetDlgItemText(hDlg,nIDDlgItem,String,nMaxCount)----將控件Edit的值傳給String;
    SetDlgItemText(hDlg,nIDDlgItem,String)-----設置控件Edit的值為String。
4.菜單條顯灰:
    UINT EnableMenuItem(hmnu,item,flag);
    flag為T(mén)RUE時(shí)則顯灰,返回菜單原來(lái)的狀態(tài)。
5.限制編輯框輸入的字符長(cháng)度:
   在生成編輯框之后
   SendMessage(hEdit,EM_LIMITTEXT,10,0)-----10即為編輯框輸入的字符長(cháng)度。
6.裝載圖標:LoadIconFromFile(HDC_SCREEN,"圖標路徑",0)
7.若給控件button加上BS_DEFPUSHBUTTON屬性,則按下回車(chē)鍵就默認為單擊了該button。

三.編譯技巧
1.若你的應用程序編譯能通過(guò),但是運行時(shí)無(wú)法顯示窗口,可嘗試在主程序中加如下語(yǔ)句:      #Ifdef_LITE_VERSION
     SetdesktopRect(0,0,640,480)
    #endif
    若想在屏幕上顯示更大的窗口,可重新設置(640,480)參數,否則窗口最大就只有那么大.
2.創(chuàng )建對話(huà)框模板時(shí),有一項參數為對話(huà)框內控件的數目,必須與所創(chuàng )建的控件數目相等,否則運行時(shí)無(wú)法      顯示所有控件。
3.若用到了"打開(kāi)文件"對話(huà)框,編譯時(shí)要加入:-lmywins -lmgext。
    以及要包含兩個(gè)頭文件:minigui/mywindows.h   minigui/filedlg.h
4.結束對話(huà)框EndDialog會(huì )自動(dòng)銷(xiāo)毀Dialog中的所有控件,而無(wú)須手工一項項刪除。

四.Minigui源碼解讀:
1.mginit.rc中的nr參數為在控制欄中顯示幾個(gè)應用程序的圖標。
2.mginit.rc中的參數 autostart = n 表示啟動(dòng)minigui時(shí),第n個(gè)應用程序便會(huì )自動(dòng)啟動(dòng)。
3.改變Minigui.cfg中的 imenumber = 1 則啟動(dòng)時(shí)會(huì )不出現輸入法狀態(tài)條。
4.mginit.c中第283行:
   if(SetDesktopRect(0,g_rcscr.bottom-HEIGHT_TASKBAR-HEIGHT_IMEWIN,
      g_rcscr.right,g_rcscr.bottom) == 0)
   去掉HEIGHT_IMEWIN(即不減去該項),即可消掉輸入法所占的一片空白。
5.用一個(gè)"土辦法"實(shí)現菜單快捷鍵控制:
    1)在menu.c中,PopupmenuTrackProc()是處理菜單被擊活后的按鍵消息,如上、下、左、右移等。              TrackMenuBar是擊活菜單,被PopupMenuTrackProc()函數的按鍵或鼠標消息調用(主要是向左或右移          動(dòng)彈出另一個(gè)菜單)故肯定有一個(gè)地方專(zhuān)門(mén)用來(lái)處理菜單未被擊活時(shí)的鍵盤(pán)消息,以擊活菜單之后再調         用PopupMenuTrackProc()進(jìn)行處理。
      desktop.comm.c的deskTrackPopupMenu函數即為此。
   2)在desktop_comm.c中第1772行:更改MSG_SYSKEYDOWN為系統默認的菜單彈出鍵(可設多個(gè))。
   3)修改/src/gui/window.c第1096行,其調用TrackMenuBar的代碼,使定義鍵與菜單位置一一對應起來(lái)。
    (TrackMenuBar中的位置參數可用0,1,2等表示。)

五.小例子:
1.裝載一幅位圖,可如下:
    hdc=BeginPaint(hwnd);
    LoadBitmap(hdc,&bitmap,"位圖路徑");
    Fillboxwithbitmap(hdc,x,y,bitmap.bmwidth,bitmap.bmHeight,&bitmap);
    UnloadBitmap(&bitmap);
    EndPaint(hwnd,hdc);
2.編輯框的子類(lèi)化:
    子類(lèi)化編輯框步驟如例子所示,但如果是一個(gè)應用窗口中彈出的對話(huà)框來(lái)進(jìn)行控件子類(lèi)化的話(huà),應注意以      下兩點(diǎn):
    1)創(chuàng )建對話(huà)框中的控件可不用在CTRLDATA CtrlInitProgress中完成,可在對話(huà)框消息處理函數中響應           MSG_CREATE消息,用CreateWindow的方法生成。
    2)不能如此生成所有控件,還必須在CtrlInitProgress中生成至少一個(gè)以上控件。
     (即該結構不能是空的)   
3.制作閃屏:
    1)要另外寫(xiě)一個(gè)Main函數,做為程序的入口;
    2)該MiniGUIMain中,要加上如下代碼來(lái)裝載圖片層:
      #ifdef _LITE_VERSION
       if(JoinLayer("sp","sp",0,0,1024,768) == INV_LAYER_HANDLE)
       {
fprintf(stderr,"JoinLayer:invalid layerhandle \n");
exit(1);
}
      #endif
    3)原來(lái)的主函數要更名;
    4)在原主函數中的:
      #ifdef _LITE_VERSION
       SetDesktopRect(0,0,800,600);
      #endif
      要屏蔽掉,否則閃屏后不能退出圖片層,而是會(huì )另開(kāi)辟一個(gè)層給應用程序,導致程序退出后無(wú)法關(guān)閉圖 片層,下次無(wú)法運行。

六.其它:
1.MSG_COMMAND消息的wparam參數指定的是該消息來(lái)自哪個(gè)控件或菜單項。
2.主函數(main)有主函數的消息處理函數,
    對話(huà)框有對話(huà)框自己的消息處理函數(DialogBoxProc)。
3.響應鍵盤(pán)的消息參數:
    wParam:保存虛擬鍵碼;
    lParam:是Ctrl、Alt和Shift鍵按下或鎖定的狀態(tài)。

miniGUI配置使用FAQ(初稿)--difeijing
下面是找到的關(guān)于miniGUI的一些hints,應該覆蓋了miniGUI使用中的很多問(wèn)題,不過(guò),個(gè)人覺(jué)得,在移植miniGUI至某個(gè)特殊平臺時(shí),關(guān)于系統的經(jīng)驗還是很重要的,甚至超過(guò)下面這些小技巧的重要性;另外,仔細閱讀文檔也是相當重要的一環(huán),仔細讀文檔能幫助你避免很多麻煩。不過(guò)這份文檔當初是拿來(lái)我自己參考的,所以格式還有排版以及完整性都比較欠缺,不過(guò)還是希望能對象我這樣初用miniGUI的人有所幫助。另外,十分感謝kongmin,piano,armix諸位的討論,沒(méi)有他們前面的摸索,我們這些后來(lái)人要走不少彎路。
1.Framebuffer支持:使用miniGUI時(shí),需要系統啟動(dòng)framebuffer支持,在lilo.conf中添加一行:
vga=0x0317
在啟動(dòng)時(shí)進(jìn)入framebuffer模式,也可用fbset設置;

2.如果啟動(dòng)時(shí)提示init錯誤,可以考慮給lilo傳遞init參數:
init=/bin/sh rw

3.如果miniGUI啟動(dòng)錯誤,考慮可能是以下原因:
A)沒(méi)有啟動(dòng)framebuffer,即lilo.conf中的vga=XXXX,顯示模式參照表如下:
640x480 800x600 1024x768 1280x1024
256 0x3010x3030x3050x307
32k   0x3100x3130x3160x319
64k   0x3110x3140x3170x31A
16M   0x3120x3150x3180x31B
B)啟動(dòng)了framebuffer,但無(wú)fb設備文件,可以自己創(chuàng )建/dev/fb0文件:
mknod fb0 c 29 0
C)miniGUI需要/var/tmp目錄,如果不存在也會(huì )導致錯誤;


4. MiniGUI提供抓屏,用PrintScr鍵,抓到的圖片為tmp模式,存在當前目錄下;

5.有些時(shí)候,在試了很多方法之后設備仍然不能使用,可以考慮換個(gè)知名品牌的硬件試試,會(huì )有驚喜;

6.MiniGUI需要Unix Domain socket和System V IPC支持,內核里需要這兩個(gè);

7. 啟動(dòng)時(shí)的輸入條可以用ctrl鍵關(guān)閉/啟動(dòng),不過(guò)可能響應比較慢,要多摁幾下;另外,也可以通過(guò)配置MiniGUI.cfg文件里的imenumber選項:
[imeinfo]
imenumber=2
將imenumber=2改為imenumber=0,啟動(dòng)時(shí)就不會(huì )出現輸入條了;

8.iniGUI對串口鼠標的支持:
MiniGUI 的 Native IAL engine 目前不支持串口鼠標。
如果要使用鼠標,可以通過(guò) gpm 程序:
1. 運行 gpm -k 命令殺掉正在運行的 gpm。
2. 運行 mouse-test 命令確認自己的鼠標設備和協(xié)議。
3. 運行 gpm,指定鼠標設備和協(xié)議:
gpm -R -t <yourmousetype> -m <yourmousedevice>
4. 編輯 /etc/MiniGUI.cfg 文件,將 mtype 設置為 gpm。
將 mdev 設置為 /dev/gpmdata。
重新啟動(dòng)就OK了。
注意:用gpm設置鼠標格式的時(shí)候,可以使用-R參數,gpm 的 -R 參數是指定將原有鼠標協(xié)議轉換成哪種鼠標協(xié)議,并 出現在 /dev/gpmdata 文件上的。
gpm -R -t ms -m /dev/psaux
ms3 這種鼠標協(xié)議目前的 ial 引擎中 gpm 類(lèi)型的設備所不支持的。
9.Framebuffer選項需要在內核中打開(kāi)試驗選項,即第一項:
Code maturity level options-》Prompt for development and/or incomplete code/drivers

10.popt.h文件的用處:
這東西專(zhuān)門(mén)用于命令行解析,如果你不準備使用miniGUI的虛擬控制終端,大可以將其扔掉(我就把它給扔了:))。還有不少交叉編譯環(huán)境都不支持這玩意,小心點(diǎn)哦。 如果你要在目標版上支持控制終端,內核得有pty與pts支持

11.關(guān)于i810的framebuffer支持:
i810 的確是個(gè)令人郁悶的顯示芯片。Linux 內核中沒(méi)有對這個(gè)顯示芯片的 FrameBuffer
支持(除標準的 VGA16 FrameBuffer 之外)。

網(wǎng)絡(luò )上有一個(gè)專(zhuān)門(mén)為 i810 編寫(xiě)的 FrameBuffer 驅動(dòng)程序,以下是配置步驟:

The steps described here are given by leon, and have been tested on
RedHat Linux 7.1, Linux kernel 2.4.2.

1, get the i810fb tar ball -- i810fb_1.0x.tbz
which is compressed by bz2.
you can get it from http://www.visuelle-maschinen.de/ctfb/i810/

2, ucompress the tarball (using 'bunzip2' and 'tar' commands), and copy the i810fb.c i810fb.h
to your kernel directory:
/usr/src/linux-2.4/drivers/video

4, modify the file: /usr/src/linux-2.4/drivers/video/fbmem.c

1) add these lines as declaration:

#ifdef CONFIG_FB_I810
extern int i810fb_init (void);
extern int i810fb_setup (char*);
#endif

before lines:

static struct {
const char *name;
int (*init)(void);
int (*setup)(char*);
} fb_drivers[] __initdata = {
...

2) add these lines as the entry for i810 FrameBuffer driver:

#ifdef CONFIG_FB_I810
{ "i810fb", i810fb_init, i810fb_setup },
#endif

before lines:

#ifdef CONFIG_FB_VESA
{ "vesa", vesafb_init, vesafb_setup },
#endif
...

3, if you compile this driver into the kernel 2.4.0 or above,
you should modify the file: /usr/src/linux-2.4/drivers/char/agp/agpgart_be.c

Current version:
----------------
static int __init agp_init(void)
{
init ret_val;
...

Change to:
----------
int __init agp_init(void)
{
static int ret_val = 0;
static int woman = 0;
if (woman) return ret_val;
woman = 1;
...

5, edit the Makefile in the directory: /usr/src/linux-2.4/drivers/video
add line:

obj-$(CONFIG_FB_I810) += i810fb.o

6, edit the Config.in in the directory: /usr/src/linux-2.4/drivers/video
add these lines:

if [ "$CONFIG_PCI" = "y" ]; then
bool ' i810 support' CONFIG_FB_I810
fi

below the lines:

bool 'Support for frame buffer devices (EXPERIMENTAL)' CONFIG_FB_RIVA

if [ "$CONFIG_FB" = "y" ]; then
define_bool CONFIG_DUMMY_CONSOLE y
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
if [ " $CONFIG_PCI" = "y" ]; then
tristate ' nVidia Riva support (EXPERIMENTAL)' CONFIG_FB_RIVA
fi

7, exexute the 'make menuconfig'
a, make sure:
Character devices --->
<*> /dev/agpgart (AGP Support)
·   Intel I810/I815 (on-board) support
b, make sure:
Console drivers --->
Frame-buffer support --->
·   i810 support

8, compile the kernel image:

make dep
make bzImage

9, then cp your-bzImage /boot

10, edit /etc/lilo.conf:
add lines:

image = /boot/your-bzImage
append = "video=i810fb:x:1280,xv:1280,y:1024,yv:1024, \
depth:16,pclk:7800,le:248,ri:16,up:38,lo:1, \
hs:144,vs:3,sync=3,vmode:0,accel:0,font:VGA8x8"
initrd = /boot/initrd
label = i810fb

note: if your monitor doesn't support the 1280x1024 mode
you can add this lines instead:

image = /boot/your-bzImage
append = "video=i810fb:x:1024,xv:1024,y:768,yv:768, \
depth:16,pclk:15384,le:168,ri:8,up:29,lo:3, \
hs:144,vs:6,sync=3,vmode:0,accel:0,font:VGA8x8"
initrd = /boot/initrd
label = i810fb

This is a 1024x768x16bpp mode with 60Hz vertical frequency.

11, Run 'lilo' command.

12, Congratulations!! you can reboot your computer now!


12.移植miniGUI的心得:
應上頭要求,我花了三天時(shí)間把miniGUI 1.00挪上了mips VR4181(內核vrlinux).
以下供大家參考:
編譯所需頭文件主機x86與mips不同,可能會(huì )引起編譯出錯;
觸摸屏接口用microWindow的就行,它帶有校正功能,很不錯;
上板子時(shí)遇到莫名其妙的共享內存操作錯誤,重倒幾次后問(wèn)題又奇怪地消失了(why?)。

13.i810/815主板的framebuffer攻略:
經(jīng)歷了2天的痛苦
我終于讓我的815上出現了企鵝的LOGO了
而且fbset能夠列出顯示
如果是815/810的同志們再遇到FB問(wèn)題的話(huà)
我愿意在這里解答問(wèn)題
其實(shí)讓815/810(內置顯卡)支持FB說(shuō)白了不是太難
1.下載一位洋人為815/810寫(xiě)的FB驅動(dòng)(內付詳細安裝說(shuō)明)
2.按照那位洋人說(shuō)的修改/linux/Driver(內核的Driver目錄--內核可使用原來(lái)的亦可下載其他版本的--注意洋人在安裝說(shuō)明中所說(shuō)的驅動(dòng)要求的內核版本)下的部分文件
3.重新make內核(這一步需要參照www.minigui.org/cdoc.htm里的framebuffer配置方法)
4.重起機器應該就能看見(jiàn)企鵝了(反正我是按照這個(gè)方法一次就成功的)
有問(wèn)題的話(huà)歡迎提出

i810fb_1.08.tbz的下載地址
http://www.visuelle-maschinen.de/ctfb/i810/

14.又一案例:
現象:我用的是EP7212的板子,BlueCat的開(kāi)發(fā)平臺,下載了三個(gè)資源文件,libminiGUI1.1.0pre7,mde-0.2.7,資源文件安裝了,然后解開(kāi)libminiGUI1.1.0,
運行./autogen.sh,再運行./configure,再運行make,出現這么一個(gè)錯誤:
Making all in server
make[3]: Entering directory '/BlueCat/demo.clep7212/developer/src/minigui/libminigui-1.1.0/src/server'
/bin/sh ../../libtool --moe=complile gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../..
/include -I../include -g -02 -D__MINIGUI_LIB__ -02 -Wall -Wstrict-prototypes
-pipe -DNDEBUG -c server.c
gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -I../include -g -02 -D__MINIGUI_LIB__ -02 -Wall -Wstrict-prototypes -pipe -DNDEBUG -Wp,-MD,.deps/server.pp -c server.c -o server.o
../../gcc/pexecute.c:245: Internal compiler error in function pexecute
make[3]: ***[server.lo] Error 1
make[3]: Leaving directory '/BlueCat/demo.clep7212/developer/src/minigui/libminigui-1.1.0/src'
make[1]: *** [all-recursive] Error1

解決方法:搞定!http://arch.freeciv.org/freeciv-dev-199902/msg00522.html

15.miniGUI的裁減
裁剪 MiniGUI 的三個(gè)步驟:
1. 在運行 ./configure 時(shí)進(jìn)行定制,取消某些不需要的功能。
2. 修改 /etc/MiniGUI.cfg,刪除某些不需要的字體文件。比如,
如果你只使用 GB2312、12 點(diǎn)陣的字體,就可以只保留系統字體,
而刪除其他的字體。當然了,刪除的方法是修改 fontnumber 鍵
的值,而不是刪除這個(gè)段。對應的那些字體文件,就可以從系統
中刪除了。
3. 那三個(gè)資源包中實(shí)際有用的東西,都列在了 /etc/MiniGUI.cfg 文件中。
如果哪個(gè)文件沒(méi)有出現在 /etc/MiniGUI.cfg 中,就刪除這個(gè)文件。

這樣,一般可以將 MiniGUI 及其所使用的文件縮小到 2M 以?xún)?,有的情況
下可以縮小到 1M 以?xún)取?br>移植時(shí),光修改配置文件是不夠的。 默認情況下,許多針對具體嵌入式系統的 IAL 引擎并沒(méi)有編譯到 MiniGUI 函數庫 當中。你要在運行 ./configure 腳本的時(shí)候指定所需要的引擎。 具體方法,可參閱 http://www.minigui.org/cdoc.shtml 中有關(guān)配置的文章。 也可以參閱源代碼當中的 ./buildlib-* 文件。
如果你使用的是 MiniGUI 1.1.0PreX 版本,請使用老 GAL 引擎來(lái)提供
對 4bpp 灰度 LCD 的支持。也就是在配置時(shí)使用
--disable-newgal
選項。新的 GAL 引擎,不支持低于 8 bpp 的演示模式。
另外,你還需要在配置時(shí)指定
--enable-fblin4
--enable-ep7211ial
等選項。

15.編譯時(shí)的-m286和-m486選項的作用和意義:
from gcc-HowTo中文版:
這之中最重要的有是-m386和-m486這兩種,用來(lái)告訴gcc該把正在編譯的程序代碼視作專(zhuān)為386或是486機器所寫(xiě)的。不論是用哪一種-m來(lái)編譯程序代碼,都可以在彼此的機器上執行,-m486編譯出來(lái)的碼會(huì )比較大,不過(guò)拿來(lái)在386的機器上跑也不會(huì )比較慢就是了。
目前尚無(wú)-mpentium或是-m586的旗號。Linus建議我們可以用-m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2來(lái)得到最佳編碼的486程序代碼,這樣做正好就可以避免alignment(Pentium并不需要)有過(guò)大的gaps發(fā)生。

16.MiniGUI移植到EP7211的問(wèn)題:
我最近幾天一直忙著(zhù)移植MiniGUI到EP7212板上,碰到不少問(wèn)題,在此一次列出,請大家指點(diǎn):

1.Cygwin下編譯pexecute.c錯誤問(wèn)題,去掉autogen.sh產(chǎn)生的configure.in中的-pipe;

2.Libminigui-1.1.0編譯根據舵主手諭:./configure --disable-newgal
--enable-fblin4 --enable-ep7211ial 。編譯ok,但我編譯的libminigui都是靜態(tài)庫。我在redhat上同樣編譯卻是動(dòng)態(tài)連接庫,奇怪?

3.庫文件找不到,Makefile中手工加-lm;,編譯后文件都2M多,如何編譯成動(dòng)態(tài)庫?

4.編譯mde-0.2.7,bomb,same等程序出錯,好像調用newgdi/下的attr.c中的函數出錯,為什么調newgdi呢?我編譯庫時(shí)指定了--disable-newgal,難道mde-0.2.7不能運行在ep7212?
不管三七二十一,刪掉Makefile里的subdirs相關(guān)目錄,先編譯過(guò)了再說(shuō)。

5.仔細看發(fā)現InitEP7211Input()函數里打開(kāi)設備/dev/ts,還有一個(gè)文件/etc/ts.conf
難道設備不用MiniGUI.CFG里指定的?ts.conf那來(lái)的?mtype=應該是什么?

6.strip mginit后,變成600多k,勉強倒到板上,運行出錯,憑我的想象,修改
/etc/MiniGUI.cfg:
gal_engine=native
ial_engine=native
mdev=/dev/tpanel      #我用mknod -m 644 /dev/tpanel    c 10 12產(chǎn)生的
mtype=PS2             #我不清楚touchpanel改用什么,索性不改
defaultmode=320x240x4
運行,出現錯誤:
Error in step 8: Can not initialize low level event!
InitGUI failure when using /etc/MiniGUI.cfg as cfg file.
看來(lái)時(shí)ial出錯,查來(lái)查去好像init-lite.c文件調用引起,難道編譯了lite版本?EP7212上能用lite版本么?

看來(lái)你還是做了許多研究,但沒(méi)有找到主要問(wèn)題。
MiniGUI 中給出了針對 EP7211 的 IAL 引擎,但并沒(méi)有針對 EP7212 的 IAL 引擎。
如果兩者不同,你需要自己編寫(xiě)一個(gè)引擎,就像 EP7211 的引擎一樣,并且要在
/etc/MiniGUI.cfg 文件中指定 ial_engine=ep7212,而不是 native。
native 的 ial 引擎是用于 PC 的,操作的是鍵盤(pán)和鼠標,你用在你的 EP7212 板子
上能行嗎?
mdev 和 mtype 是給 IAL 引擎使用的一些可配置參數。某些 IAL 引擎(比如 EP7211)
根本就沒(méi)有可配置的選項,所以程序不用這些配置參數,直接將設備名稱(chēng)硬編碼到
代碼當中了,所以,是否設置 mdev 和 mtype,這無(wú)關(guān)緊要。
defaultmode 是用于新的 GAL 引擎的,你使用舊的 GAL 引擎,沒(méi)有任何作用。
對于你這種情況,建議如下:
1. 在配置 MiniGUI 的時(shí)候,打開(kāi) Dummy ial 引擎,即使用如下的參數:
--enable-dummyial
其他的參數和你以前使用的一樣。既然 EP7211 的引擎和你 EP7212 的引擎
不一樣,就不需要使用這個(gè)引擎了。Dummy IAL 引擎是個(gè)什么工作都不做的
引擎。使用這個(gè)引擎你可以首先將 MiniGUI 在目標板上運行起來(lái),然后再
進(jìn)一步參照其他的引擎編寫(xiě)適合自己的引擎。
2. 在 /etc/MiniGUI.cfg 中,指定如下設置:
gal_engine=native
ial_engine=dummy
其他參數可以忽略。
至于無(wú)法生成動(dòng)態(tài)庫的問(wèn)題,可能和你的編譯環(huán)境設置有關(guān),我就幫不上什么忙了。

17.newgal和gal的區別:newgal 只支持 8 位色以上的線(xiàn)性顯示模式,功能強大,
而低于 8 位色的那些模式(比如 16 色及低于 16 色的灰度等等)不被支持。
18.設置ial引擎的問(wèn)題:
大家新年號!請問(wèn):
在MiniGUI.cfg文件中,如設置
ial_engine=Dummy
則 mdev,mtype如何設置?
設置ial_engine=Dummy后,演示程序mginit能否運行?

那兩個(gè)參數隨便取值即可。
在使用 Dummy 引擎之后,MiniGUI 是可以正常運行的,
只是你無(wú)法控制程序而已,因為沒(méi)有任何的輸入。

19.系統時(shí)間對miniGUI也會(huì )有影響。譬如,如果系統時(shí)間不對,生成的文件時(shí)間比源文件舊,會(huì )導致make進(jìn)行clock skew

20.桌面程序的層:
今天總算把MiniGUI給裝上了,真爽呀!但是為什么不管運行什么程序都是在屏幕右邊三分之二處有一條線(xiàn)把屏幕分成二部分了?

MiniGUI-Lite 原本是每個(gè)客戶(hù)進(jìn)程在自己的層中運行的。
后來(lái)可以讓許多進(jìn)程在同一個(gè)層中運行,但不能互相重疊。
那個(gè)線(xiàn)就是表示一個(gè)客戶(hù)在一個(gè)層中所占有的矩形區域。

kongming大哥,你的意思是不是說(shuō),除了不能互相重疊之外,是可以在桌面上同時(shí)看到兩個(gè)矩形區域,分別有不同的客戶(hù)程序在運行呢?可是在mde中除了能看到一個(gè)客戶(hù)程序和桌紙、任務(wù)欄外,即便還運行著(zhù)別的客戶(hù)程序也是看不到的呀。
如果要做一個(gè)比較完善的窗口管理器的話(huà),是不是可以做到“讓許多進(jìn)程在同一個(gè)層中運行,并能互相重疊”的效果呢,是不是還可以象windows下那樣隨意移動(dòng)窗口的位置和改變窗口的大小呢?
我是新手,剛剛把MiniGUI安裝好,還不懂其編程呢,所以問(wèn)題很幼稚,請大俠們不要見(jiàn)笑,不吝賜教喲:)

那需要在運行程序時(shí)添加一個(gè)特殊的選項,
比如:
./fminigui -layer vcongui
指定它加入某個(gè)層,否則會(huì )新建一個(gè)層。
其實(shí),在許多嵌入式設備當中,有這種層,以及進(jìn)程內的多窗口完全支持,就足夠了。

21.在Embedded Planet上安裝MiniGUI.1.1.0的注意事項:
1.修改helio.c文件
      #define _HELIO_BUTTON   1
改為   #undef _HELIO_BUTTON
2.修改configure文件
     CC = “$ac_cv_prog_cc”
改為 CC = ppc_8xx-gcc
3.修改config.h文件
     #undef   _EXT_CTRL_TREEVIEW
改為 #define   _EXT_CTRL_TREEVIEW
4.修改tools/目錄下的Makefile文件:
      LIBS = -lminigui
改為:LIBS = -lminigui –lm
5.taskbar.c中去掉
hIMEwnd = IMEWindowEx…….
6.配置使用build_helio
7.頭文件、四個(gè)庫文件、資源文件以及配置文件MiniGUI.cfg都要復制到嵌入式系統的對應目錄中。
8.根據mginit目錄中minigui.rc文件的要求將mginit及其它demo復制到相應目錄下。

22.about鼠標的問(wèn)題:
現在我的pc104平臺上已經(jīng)顯示出bomb的畫(huà)面,真令人激動(dòng)?,F在還有兩個(gè)小問(wèn)題想請教
1。bomb只在屏幕上顯示了一部分,功能正常,** 但我無(wú)法修改圖形模式**,
我的顯卡(C&T 65535 1M)可以用SVGALib的測試程序,最高可設為1024x768x256
我在MiniGUI.cfg中設置了
[SVGALib]
defaultmode=1024x768x256(1024x768x256或1024x768-256 ,1024x768x-8bpp,640x480-256)
從bomb退出后均提示無(wú)效的圖形模式。
若設成:defaultmode=G1024x768x256(或G640x480x256) 則黑屏
我看了網(wǎng)站上的文檔,好象沒(méi)有具體的說(shuō)明,不知如何設 置
2。我看網(wǎng)站上有貼是關(guān)于串行口鼠標支持的一段修改的程序(用ms3),我下載后編譯成功,但鼠標無(wú)法驅動(dòng)。是否此修改不能在SVGALib上用?

第一個(gè)問(wèn)題:
正確的設置應該是

[SVGALib]
defaultmode=G1024x768x256

如果是黑屏,可能是驅動(dòng)不支持的原因,也許要修改 /etc/vga/libvga.conf 中的設置。

第二個(gè)問(wèn)題:
那段程序是用來(lái)支持 native IAL 引擎的,SVGALib 的鼠標支持,需要修改
/etc/vga/libvga.conf 文件。

將 mousetype 設置為 Microsoft,并正確設定鼠標設備文件。

我現在用PS2鼠標,顯卡正常的設置應該是G320x200x256 ,我看了一下文件src/gal/svgalib.c 似乎在模式非法時(shí)缺省返回G320x200x256,然后我將MiniGUI.cfg的模式也改成這個(gè)后,可以正常。改成G640x480x256   ,或G1024x768x256都會(huì )黑屏,但這兩種模式我安裝好SVGALib-1.4.0后運行其自帶的vgatest測試程序都可以正常顯示。不知SVGALib圖形引擎支持的模式,是否minigui-1.1.0都支持?黑屏跟其他設置有關(guān)嗎,比如鼠標,鍵盤(pán)?
另外,在執行./configure ----disable-newgal --disable-nativegal --enable-svgalib后 似乎仍然沒(méi)有將SVGALib編譯進(jìn)去,我看了以下生成的文件config.h,有一行
/*undef _SVGALIB*/
必須還要加上--disable-lite生成的config.h里就有了#define _SVGALIB 1,不知是否是這樣?

應該和鼠標鍵盤(pán)沒(méi)有關(guān)系。
至于配置選項,的確應該加上 --disable-lite,因為 MiniGUI-Lite 版本不能在
SVGALIB 上運行。所以,我估計應該是這個(gè)問(wèn)題造成的。


23.如何在啟動(dòng)的任務(wù)欄中添加自己的程序:
我們在redhat7.2上編譯好minigui1.1.x后,準備學(xué)習在該環(huán)境下編譯調試minigui應用程序。我們以源程序中附帶的hello world程序為例。該程序要求畫(huà)一個(gè)窗口并在其中顯示Hello world。
于是大家摸索如何在mginit中添加一個(gè)圖標,并使該圖標的點(diǎn)擊啟動(dòng)hello world程序?;咀龇ㄈ缦拢?
1、在mde0.3.0中添加一個(gè)hello文件包,并將hello world源程序復制到其中。
2、將notebook中的Makefile等三個(gè)文件以及res包復制到hello中。
3、分別修改三個(gè)make文件,將其中的notebook字樣全部替換為hello。
4、用linux下的任何圖像編輯工具設計一個(gè)圖標存為hello.png和hello.gif,存到mginit包下的res包中。
5、修改mginit包下的mginit.rc文件:將其中的nr=10,改為nr=11;
       復制其中的一組程序段到最后,段頭改為apply10;其中對應的字樣也改為hello
6、修改mginit包下的三個(gè)make文件,其中有一個(gè)地方列出了很多應用程序可執行文件名,在其中添加hello。
至此,基本修改結束。執行make命令。成功后,運行mginit,則應能看到mginit窗口下多了一個(gè)圖標,那就是你設計的。點(diǎn)擊之,應該能看到hello world程序運行結果。
不一定描述準確,僅供參考。
24. miniGUI應用程序的問(wèn)題:
各位兄弟:
大家好!我做了一個(gè)應用,使板子一上電Linux引導之后就自動(dòng)運行MiniGUI服務(wù)器進(jìn)程和MiniGUI應用程序,但發(fā)現服務(wù)器進(jìn)程mginit每次均能正常運行,而應用程序時(shí)好時(shí)壞(有時(shí)能起來(lái),有時(shí)卻起不來(lái))。我估計這種現象可能是服務(wù)器與應用程序之間的通訊造成的(即服務(wù)器還沒(méi)有準備好,而應用程序卻開(kāi)始運行了)。但發(fā)現在mginit&之后加延時(shí)再跑應用程序也存在著(zhù)這個(gè)問(wèn)題。下面是我寫(xiě)的簡(jiǎn)單服務(wù)器進(jìn)程mginit.c和應用程序test.c,可能存在著(zhù)桌面、層、通訊方面的問(wèn)題與不足,請大家不吝賜教,謝謝!

顯示:?jiǎn)紊獿CD(320*240)

一、服務(wù)器進(jìn)程mginit.c
  
int DisplayImeProc(HWND hWnd, int nMsg, WPARAM wParam, LPARAM lParam);

int MiniGUIMain (int args, const char* arg[])
{
MSG Msg;
MAINWINCREATE CreateInfo;
HWND hMainWnd;


if (!ServerStartup ())
{
      fprintf(stderr, "Can not start mginit.\n");
      return 1;
}

  
if(SetDesktopRect (0, 207, 320, 240)==0)
{
     fprintf(stderr, "Can not get the required desktop rectangle.\n");
     return 2;
}
  

if(!InitMiniGUIExt())
{
  
     fprintf(stderr, "Can not init mgext library.\n");
     return 3;
}

CreateInfo.dwstyle =   WS_BORDER;
CreateInfo.dwExstyle = WS_EX_NONE;
CreateInfo.hMenu =(HMENU)NULL;
CreateInfo.hCursor =(HCURSOR)(IDC_ARROW);
CreateInfo.hIcon = GetSmallSystemIcon (IDI_APPLICATION);
CreateInfo.lx=0;
CreateInfo.ty=207;
CreateInfo.rx=320;
CreateInfo.by=240;
CreateInfo.hMenu=(HMENU)NULL;
CreateInfo.MainWindowProc=DisplayImeProc;
CreateInfo.iBkColor=COLOR_lightwhite;
CreateInfo.dwAddData=0;
CreateInfo.hHosting=HWND_DESKTOP;

hMainWnd=CreateMainWindow(&CreateInfo);
  
    
if(hMainWnd==HWND_INVALID)
{
       fprintf(stderr,"Main Window invalid!\n");
       return -1;
}
  
ShowWindow(hMainWnd,SW_HIDE);
  
  
while(GetMessage(&Msg,hMainWnd))
{
    DispatchMessage(&Msg);
}
  
MainWindowThreadCleanup(hMainWnd);
  
return 0;
}


int DisplayImeProc(HWND hWnd, int nMsg, WPARAM wParam, LPARAM lParam)
{

switch (nMsg)
{
     case MSG_CREATE:
    {
IMEWindow(hWnd);
return 0;
    }
}

return DefaultMainWinProc(hWnd, nMsg, wParam, lParam);
  
}

二、應用程序test.c
int MiniGUIMain (int args, const char* arg[])
{
MSG Msg;
MAINWINCREATE         CreateInfo;
HWND hMainWnd;
HHOOK hhook;

SetDesktopRect (0, 0, 320, 207);
CreateInfo.dwstyle =   WS_BORDER;
CreateInfo.dwExstyle = WS_EX_NONE;
CreateInfo.hMenu =(HMENU)NULL;
CreateInfo.hCursor = GetSystemCursor (IDC_ARROW);
CreateInfo.hIcon = GetSmallSystemIcon (IDI_APPLICATION);
CreateInfo.MainWindowProc = MainWinProc;
CreateInfo.lx = 0;
CreateInfo.ty = 0;
CreateInfo.rx = 320;
CreateInfo.by = 207;
CreateInfo.iBkColor=COLOR_lightwhite;
CreateInfo.dwAddData = 0;
CreateInfo.hHosting = HWND_DESKTOP;
  
if(!InitMiniGUIExt())
{
    return 1;
}
  
hMainWnd = CreateMainWindow (&CreateInfo);
  
if (hMainWnd == HWND_INVALID)
      return 2;

ShowWindow (hMainWnd, SW_SHOWNORMAL);
hhook = RegisterKeyMsgHook(hMainWnd, AllKeyboardProc);
while( GetMessage (&Msg, hMainWnd))
{
TranslateMessage(&Msg);
      DispatchMessage (&Msg);
}

UnregisterHook (hhook);
MainWindowThreadCleanup (hMainWnd);

return 0;
}

三、存在的問(wèn)題:
1.mginit進(jìn)程與應用程序進(jìn)程test存在著(zhù)通訊上的問(wèn)題(即服務(wù)器進(jìn)程能正常工作,而 應用程序有時(shí)能起來(lái),有時(shí)卻起不來(lái))。如何解決?
    具體實(shí)現,在/etc/rc.sysinit文件中加入:
        insmod ...     //加入一些驅動(dòng),如DOC、鍵盤(pán)。
        mginit &
        ./test &
2.在應用程序中的編輯框中,按左右方向鍵不能在編輯框中的字符間移動(dòng),但左右方向鍵在MiniGUI上能通過(guò)按鍵消息得到。是否與Caret的設置有關(guān)?

3.服務(wù)器與應用程序中相應的配置是否還存在著(zhù)問(wèn)題? (主要是桌面、層方面)

1. 如果是你懷疑的那個(gè)愿意,你可以試著(zhù)在 mginit 當中 fork 然后執行 test 程序。
就像 MDE 中的 mginit 那樣。
2. 是在你的目標板上不正常嗎?
3. 似乎沒(méi)有什么問(wèn)題。

1.為了使mginit快速啟動(dòng),我把mginit和運行庫放到了FLASH中了,而應用程序、字庫、輸 入法放在DOC中。但大多數情況下,應用程序都能起來(lái)。

2.板子好像沒(méi)有問(wèn)題,但可能驅動(dòng)大多造成了服務(wù)器與應用間的通訊。我有DOC、AD、顯示、鍵盤(pán)等驅動(dòng)。
至于光標,跑例子程序中的notebook,左右方向鍵仍然不能在字符間移動(dòng)。

Kong Ming:
您好!
問(wèn)題已經(jīng)解決,原來(lái)是我在mginit中處理MSG_PAINT消息后使用了return 0;語(yǔ)句,而應使用break;結束,從而引起了mginit 死機!還有光標問(wèn)題基本上已得到解決,原來(lái)我在鍵盤(pán)驅動(dòng)中處理左右方向鍵時(shí),掃描碼沒(méi)有按照MiniGUI的要求做。修改之后,光標已能在Edit框中左右移動(dòng)了,但在ComboBox框中設置了焦點(diǎn),仍不出現閃爍的豎線(xiàn)光標,請問(wèn)是什么原因?

請問(wèn)你是怎么設置 ComboBox 控件的焦點(diǎn)的?

使用SetFocus(hComboOperator);其中,hComboOperator是所創(chuàng )建組合框的窗口柄。謝謝!

似乎不應該出問(wèn)題啊。你用的是什么版本的 MiniGUI?檢查一下 src/control/combobox.c 中 SETFOCUS 消息的處理。

我用的是MiniGUI1.10Pre9,在這個(gè)版本中怎么沒(méi)有SETFOCUS的消息處理呢?

那看來(lái)是版本太老的原因,建議你還是升級到最新的 1.2.1 吧。

24.如果mginit不能正常啟動(dòng)的話(huà),可以考慮減少mginit.rc的nr值,譬如修改為6,這個(gè)文件是mginit的配置文件。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
MiniGUI 1.3.3 移植詳解2
基于Video4Linux 的USB攝像頭
基于A(yíng)RM<b style="color: rgb(0, 0, 0); font-size: 14px;">-Linux的MiniGUI的仿真與移植</b>
改進(jìn)minigui1.3.3的輸入法窗口,增加虛擬鍵盤(pán)| Linux交流區
05年學(xué)習arm?linux的筆記
MiniGUI Lite 版本的新改進(jìn)深入分析
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久