青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

春暖花開
雪化了,花開了,春天來了
posts - 149,comments - 125,trackbacks - 0
這個的確還是挺頭疼的。前一階段同學告訴我,很不幸,今天又給忘了。
查了一下,再根據模糊記憶,還是把方框打上了對勾。

可能你也有這樣的煩惱,不妨我們來看一下:

在word字體中選擇Wingdings2,然后寫一個大寫R,這樣你就看到方框打對勾了。

好記性真不如爛筆頭,占此一角,記錄一下。

posted @ 2009-03-31 15:44 Sandy 閱讀(5461) | 評論 (7)編輯 收藏

Windows mobile 中 outlook 中任務,約會,聯系人,在調用時,有相應的database oid
對應的database oid 不是很清楚,我通過實驗,發現,任務是13, 約會是9, 聯系人是10.

那有沒有專門的數值對應呢?查了一下,發現這么個東東:

typedef /* [v1_enum] */
enum OlDefaultFolders
    {   olFolderCalendar    = 9,
        olFolderContacts    = 10,
        olFolderTasks       = 13,
        olFolderCities      = 101,
        olFolderInfrared    = 102,
    } OlDefaultFolders;

和我們的實驗數據一樣.

不錯吧.

posted @ 2009-03-30 16:32 Sandy 閱讀(237) | 評論 (0)編輯 收藏
最近在搞一個小東東,
里面涉及到了DATE和SYSTEMTIME的轉換,沒有用到過,記錄一下.

  DATE 轉換成SYSTEMTIME
  VariantTimeToSystemTime
  其原型為:
  INT VariantTimeToSystemTime(
  double
vtime,             
  LPSYSTEMTIME lpSystemTime 
  );
  

   SYSTEMTIME轉換成DATE
   SystemTimeToVariantTime
  其原型為:
  INT SystemTimeToVariantTime(
  LPSYSTEMTIME
lpSystemTime, 
  double        *pvtime          
  );
posted @ 2009-03-26 09:21 Sandy 閱讀(1714) | 評論 (0)編輯 收藏
       今天調試安裝文件的對話框,橫屏的時候,Edit框的顯示,總會隨著滾動條往上移動,下面顯示出一大片的空白。

      很是郁悶啊……

       在代碼中修改了很長時間,找不出原因,最后和別人代碼比對的時候,發現我竟然是在資源文件中的對話框屬性定義中比別人多一個WS_BORDER屬性,問題迎刃而解。

         但究其原因,還不是很清楚。

         WS_BORDER: Create a window that has a border.

          似乎也看不出來什么原因。
posted @ 2009-03-18 19:00 Sandy 閱讀(226) | 評論 (2)編輯 收藏
       
        在Windows Mobile中,Edit控件在具有WS_VSCROLL的時候,無論顯示文字的多少,都會顯示滾動條。如何在顯示文字不到一頁的情況下,讓滾動條不顯示呢?

         我是這樣考慮的:判斷顯示文字的高度,即顯示文字的行數*單個文字的高度,判斷其是否大于屏幕高度,如果大于,則改變Edit控件的屬性,使其具有WS_VSCROLL屬性;如果小于或等于,則改變Edit控件的屬性,使其不具有WS_VSCROLL屬性。

         代碼示例:

         int height = GetSystemMetrics(SM_CYFULLSCREEN); // 此處示屏幕高度,可自己設定
         
         HWND hEdit = GetDlgItem(hDlg, IDC_EDIT);
         DWORD dwLineCount = (DWORD)::SendMessage(hEdit, EM_GETLINECOUNT, 0, 0L);
         HDC hdc = GetDC(hDlg);
         TEXTMETRIC metric;
         GetTextMetrics(hdc, &metric);
         ReleaseDC(hDlg, hdc); 

          if (metric.tmHeight * dwLineCount <= height))
         {
               SetWindowLong(hEdit, GWL_STYLE, WS_VISIBLE | ES_MULTILINE | ES_READONLY);
           }
           else
           {
                SetWindowLong(hEdit,GWL_STYLE, WS_VISIBLE| WS_VSCROLL|   ES_MULTILINE  |ES_READONLY);
           }

           我在創建Edit控件的時候,一開始沒有設置WS_VSCROLL屬性,發現加上WS_VSCROLL屬性后,對于按鍵的上下響應有些問題。后來就反其道而行之,先讓其具有WS_VSCROLL屬性,然后再判斷其是否該顯示滾動條。

            在Windows Mobile中涉及到橫豎屏切換的問題,比如說,在豎屏的時候沒有滾動條,到橫屏的時候又需要有滾動條,此時怎么辦?
             在WM_SIZE中進行以上的屬性判斷,但是有一個問題需要注意:如果需要調整Edit控件的大小,需要在屬性判斷置后進行。

              一點心得,大家可以試試哈!
          

        

posted @ 2009-03-18 18:48 Sandy 閱讀(823) | 評論 (0)編輯 收藏

Why is everyone in such a rush?
Walk into any bookstore, and you'll see how to Teach Yourself Java in 7 Days alongside endless variations offering to teach Visual Basic, Windows, the Internet, and so on in a few days or hours. I did the following power search at Amazon.com:
pubdate: after 1992 and title: days and
(title: learn or title: teach yourself)
and got back 248 hits. The first 78 were computer books (number 79 was Learn Bengali in 30 days). I replaced "days" with "hours" and got remarkably similar results: 253 more books, with 77 computer books followed by Teach Yourself Grammar and Style in 24 Hours at number 78. Out of the top 200 total, 96% were computer books.
The conclusion is that either people are in a big rush to learn about computers, or that computers are somehow fabulously easier to learn than anything else. There are no books on how to learn Beethoven, or Quantum Physics, or even Dog Grooming in a few days.

Let's analyze what a title like Learn Pascal in Three Days could mean:

Learn: In 3 days you won't have time to write several significant programs, and learn from your successes and failures with them. You won't have time to work with an experienced programmer and understand what it is like to live in that environment. In short, you won't have time to learn much. So they can only be talking about a superficial familiarity, not a deep understanding. As Alexander Pope said, a little learning is a dangerous thing.

Pascal: In 3 days you might be able to learn the syntax of Pascal (if you already knew a similar language), but you couldn't learn much about how to use the syntax. In short, if you were, say, a Basic programmer, you could learn to write programs in the style of Basic using Pascal syntax, but you couldn't learn what Pascal is actually good (and bad) for. So what's the point? Alan Perlis once said: "A language that doesn't affect the way you think about programming, is not worth knowing". One possible point is that you have to learn a tiny bit of Pascal (or more likely, something like Visual Basic or javascript) because you need to interface with an existing tool to accomplish a specific task. But then you're not learning how to program; you're learning to accomplish that task.

in Three Days: Unfortunately, this is not enough, as the next section shows.
Teach Yourself Programming in Ten Years
Researchers (Hayes, Bloom) have shown it takes about ten years to develop expertise in any of a wide variety of areas, including chess playing, music composition, painting, piano playing, swimming, tennis, and research in neuropsychology and topology. There appear to be no real shortcuts: even Mozart, who was a musical prodigy at age 4, took 13 more years before he began to produce world-class music. In another genre, the Beatles seemed to burst onto the scene, appearing on the Ed Sullivan show in 1964. But they had been playing since 1957, and while they had mass appeal early on, their first great critical success, Sgt. Peppers, was released in 1967. Samuel Johnson thought it took longer than ten years: "Excellence in any department can be attained only by the labor of a lifetime; it is not to be purchased at a lesser price." And Chaucer complained "the lyf so short, the craft so long to lerne."
Here's my recipe for programming success:

Get interested in programming, and do some because it is fun. Make sure that it keeps being enough fun so that you will be willing to put in ten years.

Talk to other programmers; read other programs. This is more important than any book or training course.

Program. The best kind of learning is learning by doing. To put it more technically, "the maximal level of performance for individuals in a given domain is not attained automatically as a function of extended experience, but the level of performance can be increased even by highly experienced individuals as a result of deliberate efforts to improve." (p. 366) and "the most effective learning requires a well-defined task with an appropriate difficulty level for the particular individual, informative feedback, and opportunities for repetition and corrections of errors." (p. 20-21) The book Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life is an interesting reference for this viewpoint.

If you want, put in four years at a college (or more at a graduate school). This will give you access to some jobs that require credentials, and it will give you a deeper understanding of the field, but if you don't enjoy school, you can (with some dedication) get similar experience on the job. In any case, book learning alone won't be enough. "Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter" says Eric Raymond, author of The New Hacker's Dictionary. One of the best programmers I ever hired had only a High School degree; he's produced a lot of great software, has his own news group, and through stock options is no doubt much richer than I'll ever be.

Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. When you're the best, you get to test your abilities to lead a project, and to inspire others with your vision. When you're the worst, you learn what the masters do, and you learn what they don't like to do (because they make you do it for them).

Work on projects after other programmers. Be involved in understanding a program written by someone else. See what it takes to understand and fix it when the original programmers are not around. Think about how to design your programs to make it easier for those who will maintain it after you.

Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal).

Remember that there is a "computer" in "computer science". Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), read consecutive words from disk, and seek to a new location on disk. (Answers here.)

Get involved in a language standardization effort. It could be the ANSI C++ committee, or it could be deciding if your local coding style will have 2 or 4 space indentation levels. Either way, you learn about what other people like in a language, how deeply they feel so, and perhaps even a little about why they feel so.

Have the good sense to get off the language standardization effort as quickly as possible.
With all that in mind, its questionable how far you can get just by book learning. Before my first child was born, I read all the How To books, and still felt like a clueless novice. 30 Months later, when my second child was due, did I go back to the books for a refresher? No. Instead, I relied on my personal experience, which turned out to be far more useful and reassuring to me than the thousands of pages written by experts.
Fred Brooks, in his essay No Silver Bullets identified a three-part plan for finding great software designers:

Systematically identify top designers as early as possible.

Assign a career mentor to be responsible for the development of the prospect and carefully keep a career file.

Provide opportunities for growing designers to interact and stimulate each other.

This assumes that some people already have the qualities necessary for being a great designer; the job is to properly coax them along. Alan Perlis put it more succinctly: "Everyone can be taught to sculpt: Michelangelo would have had to be taught how not to. So it is with the great programmers".
So go ahead and buy that Java book; you'll probably get some use out of it. But you won't change your life, or your real overall expertise as a programmer in 24 hours, days, or even months.


References
Bloom, Benjamin (ed.) Developing Talent in Young People, Ballantine, 1985.

Brooks, Fred, No Silver Bullets, IEEE Computer, vol. 20, no. 4, 1987, p. 10-19.

Hayes, John R., Complete Problem Solver Lawrence Erlbaum, 1989.

Lave, Jean, Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life, Cambridge University Press, 1988.
http://www.norvig.com/

posted @ 2009-03-14 10:24 Sandy 閱讀(381) | 評論 (0)編輯 收藏
昨天才開始認真讀《小P成長記》,發現真的很好看。

學習這么久,才發現思考方法的轉變還是很重要的。我們往往缺少一位向老C一樣的好老師,能夠慢慢引導我們學習。

機會難得,我們與小P一樣快快成長吧。

讀到第一桶第九碗了,
對里面的一些思想和方法很贊同,轉過來:

思想:
1. 以數據為中心思考問題的解決之道。
2. 將對同類數據的操作放在相同的編譯單元中。
3. 信息隱藏,而不是暴露,以將問題的規模控制在可理解的范圍。


方法:
1. 首先關注整體,而不是細節。
2. 先考慮測試,更先于編碼。
3. 先用偽代碼編程,以體現程序的意圖,再用具體代碼完善之。
4. 迅速構建可編譯通過的,并且可執行的框架程序,使用測試代碼測試之。
5. 將以上方法反復應用于子模塊,直到問題被解決。
6. 在上下文環境中提取對其他模塊的需求。
7. 先寫.h文件,后寫.c文件。
8. 先快速實現一個可行的解法,再根據反饋信息優化之。

如果大家也關心小P,就一同到那看看,鏈接地址:http://m.shnenglu.com/enderson/archive/2009/02/18/74215.html
posted @ 2009-03-12 13:59 Sandy 閱讀(191) | 評論 (0)編輯 收藏
今天在項目中遇到了一個問題:在smartphone上獲取進程地址不成功,而在pocket pc上卻可以獲取成功。研究了一下,這是跟smartphone上的安全機制有關,需要對我們的應用程序進行簽名。

開發的時候利用數字簽名就可以解決。

開發的時候,在Project->Property->Configuration Properties->Authenticode Signing中需要加載開發安全證書。

這樣我們就可以很方便的獲得進程的路徑

TCHAR szPath[MAX_PATH];
HANDLE hProcess 
= OpenProcess(0, FALSE, pe.th32ProcessID);
   GetModuleFileName((HMODULE)hProcess, szPath, 
sizeof(szPath));
   CloseHandle(hProcess);

如果hProcess為NULL的話,獲取的是當前進程的路徑。

所以開發SmartPhone時需要注意這點。涉及特權API了,就需要簽名了。
posted @ 2009-03-11 17:52 Sandy 閱讀(1767) | 評論 (2)編輯 收藏
 

最近在工作中遇到一個比較怪異的現象,在某些省區與SP的短信交互存在問題,短信發送不出去。查了一下原因:SmsSendMessage參數設置的問題。

Windows Mobile 5.0SDKHelloSMS例子中,發送短信的代碼是這樣寫的

void SendSMS(BOOL bSendConfirmation, BOOL bUseDefaultSMSC, LPCTSTR lpszSMSC, LPCTSTR lpszRecipient, LPCTSTR lpszMessage)
{
    SMS_HANDLE smshHandle;
    SMS_ADDRESS smsaSource;
    SMS_ADDRESS smsaDestination;
    TEXT_PROVIDER_SPECIFIC_DATA tpsd;
    SMS_MESSAGE_ID smsmidMessageID;

    
// try to open an SMS Handle
    if(FAILED(SmsOpen(SMS_MSGTYPE_TEXT, SMS_MODE_SEND, &smshHandle, NULL)))
    
{
        MessageBox(NULL,
                    (LPCTSTR)LoadString(ghInstance, IDS_ERROR_SMSOPEN, 
00), 
                    (LPCTSTR)LoadString(ghInstance, IDS_CAPTION_ERROR, 
00),
                    MB_OK 
| MB_ICONERROR);
        
return;
    }


    
// Create the source address
    if(!bUseDefaultSMSC)
    
{
        smsaSource.smsatAddressType 
= SMSAT_INTERNATIONAL;
        _tcsncpy(smsaSource.ptsAddress, lpszSMSC, SMS_MAX_ADDRESS_LENGTH);
    }


    
// Create the destination address
    smsaDestination.smsatAddressType = SMSAT_INTERNATIONAL;
    _tcsncpy(smsaDestination.ptsAddress, lpszRecipient, SMS_MAX_ADDRESS_LENGTH);

    
// Set up provider specific data
    memset(&tpsd, 0sizeof(tpsd));
    tpsd.dwMessageOptions 
= bSendConfirmation ? PS_MESSAGE_OPTION_STATUSREPORT : PS_MESSAGE_OPTION_NONE;
    tpsd.psMessageClass 
= PS_MESSAGE_CLASS1;
    tpsd.psReplaceOption 
= PSRO_NONE;
    tpsd.dwHeaderDataSize 
= 0;

    
// Send the message, indicating success or failure
    if(SUCCEEDED(SmsSendMessage(smshHandle, ((bUseDefaultSMSC) ? NULL : &smsaSource), 
                                 
&smsaDestination, NULL, (PBYTE) lpszMessage, 
                                 _tcslen(lpszMessage) 
* sizeof(TCHAR), (PBYTE) &tpsd, 
                                 
sizeof(TEXT_PROVIDER_SPECIFIC_DATA), SMSDE_OPTIMAL, 
                                 SMS_OPTION_DELIVERY_NONE, 
&smsmidMessageID)))
    
{
        MessageBox(NULL,
                    (LPCTSTR)LoadString(ghInstance, IDS_SMSSENT, 
00), 
                    (LPCTSTR)LoadString(ghInstance, IDS_CAPTION_SUCCESS, 
00),
                    MB_OK);
    }

    
else
    
{
        MessageBox(NULL,
                    (LPCTSTR)LoadString(ghInstance, IDS_ERROR_SMSSEND, 
00), 
                    (LPCTSTR)LoadString(ghInstance, IDS_CAPTION_ERROR, 
00),
                    MB_OK 
| MB_ICONERROR);
    }


    
// clean up
    VERIFY(SUCCEEDED(SmsClose(smshHandle)));
}


這段代碼在一般情況下是運行正確的,對于手機與手機的發送是不存在問題的,但是與SP的交互在某些省區就存在短信發送不出去的情況。

為了更好的理解這段代碼,我們先來熟悉一下SmsSendMessage及各個參數。

SmsSendMessage

功能Use the SmsSendMessage function to create and send an Short Message Service (SMS) message.(創建和發送短信,但短信發送后并不保存到發件箱中)

原型

HRESULT SmsSendMessage (

const SMS_HANDLE smshHandle, // 調用SmsOpen時獲得的短信句柄

const SMS_ADDRESS * const psmsaSMSCAddress, //指向短信中心號碼的地址

const SMS_ADDRESS * const psmsaDestinationAddress, // 發送的目的地址

const SYSTEMTIME * const pstValidityPeriod, // 發送時間的有效期

const BYTE * const pbData, // 信息的內容部分

const DWORD dwDataSize,// 信息內容的長度

const BYTE * const pbProviderSpecificData, //運營商的附加數據

const DWORD dwProviderSpecificDataSize, // 附加數據的長度

const SMS_DATA_ENCODING smsdeDataEncoding, // 短信編碼

const DWORD dwOptions, // 其他選項

SMS_MESSAGE_ID * psmsmidMessageID); // 用于得到系統回執的信息

(具體介紹可查看http://msdn.microsoft.com/en-us/library/aa455068.aspx

在實際應用中短信發送不出去,但是SmsSendMessage的返回值是S_OK值。在一些文章中有人這樣認為是短信編碼的問題造成的。

如果編碼格式不對可能造成短信中心網關把短信給吞掉的情況,程序雖然調用成功,但是就是目標號碼收不到短信。函數參數中的后三個參數可以不用或設默認值都可以。

起初我也是認為這個地方造成的,很是興奮。短信的回復內容恰為字母,我誤以為短信內容此時是7-BIT的短消息,短信網關把短信給吞掉了,造成目標號碼收不到短信。在練習中卻也陰差陽錯的成功了。很高興的把理由歸到了這個地方。并這樣總結:SmsSendMessage可以支持7-bitASCII碼的短消息,也支持16-bitunicode的短消息。但內容為ASCII的時候,短信編碼為 SMSDE_GSMSMSDE_OPTIMAL,當內容不全是ASCII的時候,短信編碼為SMSDE_GSMSMSDE_OPTIMAL。所以回復內容改為漢字即可。

但是這樣對么?起初我認為我的解釋很合理.但是我卻發現我的一個參數與原來的程序不一樣.

是我在嘗試中無意修改了一個參數,

tpsd.psMessageClass = PS_MESSAGE_CLASS1;

修改為了

tpsd.psMessageClass = PS_MESSAGE_CLASSUNSPECIFIED;

這是發送短信中的運營商的指定數據TEXT_PROVIDER_SPECIFIC_DATA,它的參數psMessageClass是指

Text Short Message Service (SMS) messages with the appropriate flag can replace previously received notifications with a similar flag and originating address.

它有以下五個值:

PS_MESSAGE_CLASS0: The message should be displayed immediately but not stored. The MS shall send an acknowledgement to the service center when the message has successfully reached the MS. (被接受后立即顯示但不存儲(稱為閃信)。需要向SMSC發送確認信息。)

PS_MESSAGE_CLASS1The message should be stored and an acknowledgement should be sent to the Service Center when it is stored.(接收后被存儲,一旦存儲,需要向SMSC發送確認信息。)

PS_MESSAGE_CLASS2The message should be transferred to the SMS data field in the subscriber identity module (SIM) before an acknowledgement is sent to the Service Center.

PS_MESSAGE_CLASS3When the message has successfully reached the destination and can be stored, an acknowledgement is sent to the Service Center.

PS_MESSAGE_CLASSUNSPECIFIEDThe message Class is not set in the outgoing or incoming message. (對發出或收到的短信不進行設置)

 

分析以上五個值,前四個值有一個共同的特點,都需要向SMSC發送確認。而最后一個值沒有設定。

這個值的改動,解決了我所遇到的問題。但究其原因,我有些想不通為什么?
    但是在實際應用中,出現了
tmail.exe的異常。不知道是這個值的變動帶來的問題,還是實際模塊中存在的問題。還需要繼續研究一下。

如果大家有知道的,給些建議哈.

posted @ 2009-03-10 14:14 Sandy 閱讀(6823) | 評論 (13)編輯 收藏

前階段在調研mobile上的內存釋放問題,根據大家的建議嘗試了一些,但是沒有什么效果。
于是跑到MSDN上去問相關的問題,得到了一些解答。

As far as I know, I don't think there is other way to meet your requirement.  Since each mobile application has 32M memory limitation, we have to do the performance manually, like deleting object which is not used and allocating Large Memory Blocks in Large memory Area.

For more information:
Windows CE .NET Advanced Memory Management
How the Windows Mobile 5.0 Shell Handles Low Memory Situations

我看了一部分,在How the Windows Mobile 5.0 Shell Handles Low Memory Situations中提到,

 

 

Hibernate

This is the amount of memory the shell tries to keep free at all times. If the amount of free memory falls below this value then the low memory check routine will try to free up memory. It will do this by first sending WM_HIBERNATE to all valid applications. When an application receives this message it should try to free as many resources as possible. When the low memory check routine runs again and the amount of free memory is still below the hibernate level then the shell will try to close the least recently used (LRU) application by sending a WM_CLOSE message. If the low memory check routine runs yet again and the amount of free memory is still below the hibernate level then the shell will call TerminateProcess on the LRU application that it last sent the WM_CLOSE message to.


我對這段話的理解是:當空閑內存小于Hibernate時,系統便會嘗試釋放內存。首先他會向所有有效的程序發送WM_HIBERNATE。應用程序收到該消息后,會盡量釋放資源來釋放內存。如果還低于這個值的話,將發送WM_CLOSE消息給最近很少使用的程序。如果還低于該值的,就強行關閉該程序了。

這個方法似乎有效,但是用戶再起來程序的話,還是一樣的效果,并不是達到了什么釋放內存的效果。如何記錄最近很少使用的程序,這個是不是有什么方法獲得呢?

就可以像系統提示的那樣,內存不足,請釋放一些內存。手工做一些比較好。

也看了一些相近的程序的做法,似乎效果也沒有大家說的那么好。

How the Windows Mobile 5.0 Shell Handles Low Memory Situations的最后,這樣寫的

What can my Application do?

The best thing your application can do when faced with a low memory situation is to play nicely with the rest of the device. 

1、If your application receives a WM_HIBERNATE message free up any resources not absolutely required. 
2、If you are planning on allocating a large amount of memory (or if a large allocation fails) you should call SHCloseApps, which will invoke the shell low memory check routine and will try to ensure that enough free memory exists. See below for an example:

#define MIN_MEMORY_TO_RUN 2*1024*1024

MEMORYSTATUS mst;

mst.dwLength  
= sizeof(MEMORYSTATUS);

GlobalMemoryStatus(
&mst);

If (mst.dwAvailPhys 
< MIN_MEMORY_TO_RUN)

{

    
// Try to free memory by asking Shell to shutdown apps

    
if (!SHCloseApps(MIN_MEMORY_TO_RUN))

    
{

        
// Handle the case where memory could not be freed

        …


專門查了一下SHCloseApps的用法
原型:BOOL SHCloseApps(  DWORD dwMemSought);
功能:
This function tries to free up memory for an application. If necessary, the shell closes down other applications by sending dwMemSought);
功能:
This function tries to free up memory for an application. If necessary, the shell closes down other applications by sending WM_CLOSE messages.
參數:dwMemSought Specifies, in bytes, the amount of memory to be freed.

通過了解dwMemSought Specifies, in bytes, the amount of memory to be freed.

通過了解SHCloseApps,我們就明白了上面那段代碼什么意思了。

看來,內存釋放并不是真正意義上的內存整理,看來我有的地方誤解了!
posted @ 2009-03-05 13:56 Sandy 閱讀(1299) | 評論 (2)編輯 收藏
僅列出標題
共15頁: First 6 7 8 9 10 11 12 13 14 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美视频一区二区三区四区| 久久久久综合一区二区三区| 欧美性猛交一区二区三区精品| 久久精品道一区二区三区| 一区二区日韩伦理片| 亚洲理论电影网| 99一区二区| 翔田千里一区二区| 欧美一区二区三区在线观看视频 | 亚洲欧美欧美一区二区三区| 亚洲精品中文字| 亚洲女同在线| 麻豆国产精品一区二区三区| 欧美国产日本在线| 亚洲毛片在线看| 欧美一区二区三区四区在线观看 | 久久久久久久久综合| 免费成人高清| 国产精品系列在线| 99精品国产99久久久久久福利| 一区二区欧美在线| 免费日韩av电影| 国产精品久久久一区二区| 国产色产综合产在线视频| 亚洲精品一区二区三区不| 久久精品欧美日韩精品| 亚洲精品日韩欧美| 奶水喷射视频一区| 国内精品久久久久久久影视麻豆| 99re亚洲国产精品| 免费成人av| 久久久久国产精品厨房| 国产日韩精品在线| 性做久久久久久免费观看欧美| 日韩视频在线观看一区二区| 久久尤物视频| 亚洲国产日韩欧美| 美女性感视频久久久| 久久精品亚洲热| 在线免费观看欧美| 国产一区美女| 久久激五月天综合精品| 亚洲一区在线看| 国产精品视频免费一区| 亚洲欧美日韩爽爽影院| 亚洲欧美日韩精品在线| 狠狠色狠色综合曰曰| 卡通动漫国产精品| 欧美美女喷水视频| 一本不卡影院| 亚洲视频你懂的| 精品福利av| 99国产精品国产精品毛片| 国产精品久久久久永久免费观看| 亚洲尤物视频在线| 久久免费午夜影院| 亚洲视频在线一区| 久久精品一本| 亚洲女同精品视频| 久久久美女艺术照精彩视频福利播放| 在线精品观看| 亚洲宅男天堂在线观看无病毒| 国内精品写真在线观看| 99国产精品久久久久久久久久| 国产日韩视频一区二区三区| 欧美ed2k| 国内精品嫩模av私拍在线观看 | 亚洲欧美日韩国产另类专区| 午夜精品一区二区三区在线播放| 最新高清无码专区| 久久综合伊人77777| 久久久精品性| 国产精品一区免费视频| 亚洲精品影视| 欧美成ee人免费视频| 老牛国产精品一区的观看方式| 国产精品网站在线| 夜夜狂射影院欧美极品| 日韩视频一区二区三区在线播放免费观看 | 亚洲欧美日韩在线观看a三区| 亚洲精品日韩综合观看成人91| 欧美在线播放一区| 久久久国产精品一区| 一色屋精品视频在线观看网站| 久久久久久久精| 亚洲大黄网站| 一区二区三区四区五区在线| 欧美日韩免费一区| 久久爱91午夜羞羞| 免费成人在线观看视频| 亚洲欧洲一区二区在线观看| 欧美日韩第一区日日骚| 欧美一级播放| 99riav久久精品riav| 久久高清福利视频| 亚洲国产高清高潮精品美女| 欧美性片在线观看| 久久夜色精品国产欧美乱| 亚洲天堂免费观看| 欧美国产精品久久| 欧美自拍偷拍午夜视频| 一区二区欧美精品| 极品尤物av久久免费看| 亚洲免费激情| 模特精品在线| 久久久久亚洲综合| 午夜精品一区二区在线观看 | 亚洲国产综合在线| 国产精品一区免费观看| 欧美午夜精品一区二区三区| 蜜桃久久精品乱码一区二区| 午夜精品久久| 欧美一级大片在线观看| 午夜在线视频观看日韩17c| 99国产精品久久久| 亚洲美女在线看| 亚洲欧洲在线一区| 亚洲人成在线影院| 99视频在线观看一区三区| 亚洲人成毛片在线播放| 亚洲激情网站免费观看| 最新69国产成人精品视频免费 | 国产精品视频九色porn| 国产精品久久久久av免费| 国产精品成人一区二区三区夜夜夜 | 亚洲成色www8888| 欧美日韩综合| 久久精品在线观看| 欧美性淫爽ww久久久久无| 亚洲国产精品一区二区www在线 | 1204国产成人精品视频| 老司机免费视频一区二区三区| 久久在线免费视频| 亚洲自拍三区| 欧美日韩视频在线一区二区| 欧美激情一区二区三区成人| 麻豆精品在线观看| 毛片一区二区三区| 亚洲高清在线精品| 99国产精品久久久久久久久久 | 男人的天堂亚洲| 久久手机精品视频| 亚洲精品一区二区三区婷婷月 | 亚洲欧美日韩综合一区| 久久超碰97中文字幕| 亚洲国产精品久久久久婷婷老年| 日韩午夜在线电影| 免费短视频成人日韩| 国产色婷婷国产综合在线理论片a| 国产亚洲精品久久久久动| 一区二区三区高清在线观看| 日韩午夜精品视频| 欧美在线影院| 中日韩视频在线观看| 另类激情亚洲| 国内外成人免费激情在线视频网站| 9色精品在线| 亚洲激情网站| 欧美日韩国产系列| 日韩视频精品| 亚洲精品欧洲| 欧美日韩在线观看一区二区三区| 亚洲国产成人午夜在线一区| 久久久噜噜噜久久| 久久精品国产综合| 激情欧美日韩一区| 欧美激情一区二区三区不卡| 亚洲国产精品视频一区| 欧美激情欧美狂野欧美精品 | 亚洲欧美日韩国产综合| 亚洲男人第一av网站| 国产精品久久久一本精品| 午夜精品偷拍| 久久频这里精品99香蕉| 亚洲区中文字幕| 亚洲特级毛片| 一区福利视频| 亚洲久色影视| 国产精品一区在线观看| 久久久综合激的五月天| 久久亚洲影音av资源网| 亚洲欧美综合精品久久成人| 久久国产主播精品| 一区二区三区四区五区在线| 久久激情视频免费观看| 亚洲欧美久久久久一区二区三区| 亚洲欧美国产高清va在线播| 狠狠色丁香久久综合频道| 亚洲免费电影在线| 亚洲国产另类久久久精品极度| 亚洲夜间福利| 亚洲综合不卡| 欧美午夜片欧美片在线观看| 欧美成人第一页| 韩日视频一区| 亚洲男女自偷自拍| 在线视频你懂得一区| 久久久精品国产一区二区三区| 亚洲精品人人| 欧美激情综合网|