wince下截圖的方法有很多種,這裡介紹一種利用gapi實現的方法。gapi是game api的縮寫,它提供了一系列函式,可以直接對螢幕緩衝區進行讀/寫訪問。雖然現在逐漸被directx mobile取代,但自從2023年首次應用在ppc上後,幾乎所有的移動裝置上都能看見它。gapi主要應用於遊戲開發,但也不僅限於此。下面就介紹一種在wm下如何利用gapi快速擷取螢幕的方法。
1struct
bmi;
5byte
*plcdbuffer
=null;
6bitmapfileheader bmfhdr;
7handle hfile;
8dword dwwritten;
9dword dwframebuffersize;
1011
gxopendisplay(null, null);
12g_displayproperties
=gxgetdisplayproperties();
13plcdbuffer
=(pbyte)gxbegindraw();
14dwframebuffersize
=g_displayproperties.cxwidth
*g_displayproperties.cyheight
*(g_displayproperties.cbpp
>>3);
1516
zeromemory(
&bmi,
sizeof
(bmi));
17bmi.bmih.bisize
=sizeof
(bitmapinfoheader);
18bmi.bmih.biwidth
=g_displayproperties.cxwidth;
19bmi.bmih.biheight =-
g_displayproperties.cyheight;
20bmi.bmih.biplanes =1
;21bmi.bmih.bibitcount
=(word)g_displayproperties.cbpp;
22bmi.bmih.bicompression
=bi_bitfields;23*
(dword *)(
&bmi.rgq[
0])
=0xf800;24
*(dword *)(
&bmi.rgq[
1])
=0x07e0;25
*(dword *)(
&bmi.rgq[
2])
=0x001f;26
27zeromemory(
&bmfhdr,
sizeof
(bitmapfileheader));
28bmfhdr.bftype
=0x4d42;29
bmfhdr.bfoffbits
=sizeof
(bitmapfileheader)
+sizeof
(bitmapinfoheader)
+sizeof
(dword)*3
;30bmfhdr.bfsize
=bmfhdr.bfoffbits
+dwframebuffersize;
3132
hfile
=createfile(_t(
"\\1.bmp
"), generic_write,
0, null, create_always,null, null);
33if
(invalid_handle_value
!=hfile)
3440
41gxenddraw();
42gxclosedisplay();
Windows Mobile下建立cmwap接入點
程式中如果要使用http或socket連線伺服器,需要先連線網路。connmgrestablishconnectionsync函式中的connmgr connectioninfo引數,不論採用iid destnetwap還是iid destnetinternet,似乎都要依賴於手機上的接入點設定。都...
Windows Mobile下使用ZLIB壓縮
前言 在當前手機應用中,可能壓縮技術不太引起重視,但是我們可以注意到一點,當手機與伺服器進行通訊的時候,速度與穩定性是非常重要,在這一環節中,我們如果把原檔案 或者原內容 直接傳送到伺服器,不僅耗費不少流量 在當前流量費不便宜的情況下,這種情況能避免就盡量避免 而且傳輸的速度慢,消耗的時間長,也有可...
Windows mobile下記憶體洩露檢測
crtdbg.h標頭檔案 如下 crtdbg.cpp 如下 然後在程式的main函式裡新增 crtsetdbgflag on 其實這是乙個 define crtsetdbgflag ignore garbagecollector gb 這樣的定義 在程式退出的時候會呼叫garbagecollecto...