找了一个不错的wince日志类
http://www.smartphonedn.com/articles/stlog.html

使用中有点疑问

就是记录日志的时候不能取得毫秒数

查阅了类中的代码
        BOOL GetTimeString(LPSTR szString,  int  nStringSize) 
        
{
            SYSTEMTIME st;
            GetLocalTime(
&st);
#ifdef STLOG_USE_PERFORMANCE_COUNTER
            LARGE_INTEGER counter;
            QueryPerformanceCounter(
&counter);
            
return (0 < _snprintf(szString, nStringSize, "%02u:%02u:%02u(%I64d)", st.wHour, st.wMinute, st.wSecond, counter.QuadPart));
#else
            
return (0 < _snprintf(szString, nStringSize, "%02u:%02u:%02u:%03u", st.wHour, st.wMinute, st.wSecond, st.wMilliseconds));
#endif



        }
似乎是 GetLocalTime确实没有返回毫秒数

代码:
            LARGE_INTEGER counter;
            QueryPerformanceCounter(
& counter);


返回的是一个系统级别的时间,单位是和系统的频率有关系的

看看的的一个日志
19:24:00(2025034847),thr 0xEFAE43F2 : =============================================
19:24:00(2025037662),thr 0xEFAE43F2 : Log is started on 10.12.2005, at 19:24:00:000, executable: \ConnectDemo.exe (ProcID: 0xef312f9a), compile time : Dec 10 2005 19:10:43
19:24:00(2025039310),thr 0xEFAE43F2 : ***Counter 0 at C:\ConnectDemo\ConnectDemoDlg.cpp,66 initialized
19:24:00(2025040604),thr 0xEFAE43F2 : Counter 0 started
19:24:00(2025062483),thr 0xEFAE43F2 : Counter 0 check point at line 82: 20333 ms from start, 20333ms from last checkpoint
19:24:00(2025461301),thr 0xEFAE43F2 : Counter 0 check point at line 101: 419054 ms from start, 398721ms from last checkpoint
19:24:00(2025463041),thr 0xEFAE43F2 : Counter 0 stopped 421045ms from start, 1991ms from last checkpoint
19:24:01(2029917182),thr 0xEFAE43F2 : Counter 0 started
19:24:01(2029921255),thr 0xEFAE43F2 : Counter 0 check point at line 82: 2272 ms from start, 2272ms from last checkpoint
19:24:01(2029998846),thr 0xEFAE43F2 : Counter 0 check point at line 101: 79754 ms from start, 77482ms from last checkpoint
19:24:01(2030000573),thr 0xEFAE43F2 : Counter 0 stopped 81732ms from start, 1978ms from last checkpoint
19:24:02(2032937140),thr 0xEFAE43F2 : Counter 0 statistics
 Counts: 2,
 MinTime: 81732 ms,
 MaxTime: 421045 ms,
 TotalTime: 502777 ms,
 AverageTime: 251388 ms
19:24:02(2032939444),thr 0xEFAE43F2 : Log finished

明显ms是错误的,继续在网上查询
查到如下代码:

#include  < windows.h >
#include 
< iostream >
using   namespace  std;

void  main() {
 LARGE_INTEGER m_liPerfFreq
={0};
    QueryPerformanceFrequency(
&m_liPerfFreq); 
     
    LARGE_INTEGER m_liPerfStart
={0};
    QueryPerformanceCounter(
&m_liPerfStart);

    
for(int i=0; i< 100; i++)
              cout 
<< i << endl;

    LARGE_INTEGER liPerfNow
={0};
    QueryPerformanceCounter(
&liPerfNow);

    
int time=( ((liPerfNow.QuadPart - m_liPerfStart.QuadPart) * 1000)/m_liPerfFreq.QuadPart);

 TCHAR buffer[
100];
 wsprintf(buffer,
"執行時間 %d millisecond ",time);
    MessageBox(NULL,buffer,
"計算時間",MB_OK);
}

看看改改代码成不成,

主要的改动就是两处

             /**/ ///*--------------------------原代码----------------------------
             // return (0 < _snprintf(szString, nStringSize, "%02u:%02u:%02u(%I64d)", st.wHour, st.wMinute, st.wSecond, counter.QuadPart));
             /**/ ///*------------------------------------------------------------
            
            
///*-------------------------修改后代码-------------------------

             return  ( 0   <  _snprintf(szString, nStringSize,  " %02u:%02u:%02u(%08ums) " , st.wHour, st.wMinute, st.wSecond, counter.QuadPart * 1000 / m_nPerfFreq.QuadPart));
            
/**/ ///*------------------------------------------------------------

             /**/ ///*--------------------------原代码----------------------------
             //     CSTLogFile::GetLogFile()->Write("Counter %d statistics\r\n\tCounts: %d,\r\n\tMinTime: %I64d ms,\r\n\tMaxTime: %I64d ms,\r\n\tTotalTime: %I64d ms,\r\n\tAverageTime: %I64d ms", 
            
//         m_nCounterIndex, m_nCounter, m_MinTime.QuadPart, m_MaxTime.QuadPart, m_TotalTime.QuadPart, m_TotalTime.QuadPart / m_nCounter); 
             /**/ ///*------------------------------------------------------------
            
            
///*-------------------------修改后代码-------------------------

                unsigned  int  m_iMinTime = (unsigned  int )(m_MinTime.QuadPart * 1000 / m_nPerfFreq.QuadPart);
                unsigned 
int  m_iMaxTime = (unsigned  int )(m_MaxTime.QuadPart * 1000 / m_nPerfFreq.QuadPart);
                unsigned 
int  m_iTotalTime = (unsigned  int )(m_TotalTime.QuadPart * 1000 / m_nPerfFreq.QuadPart);
                unsigned 
int  m_iAverageTime = (unsigned  int )(m_TotalTime.QuadPart  /  m_nCounter * 1000 / m_nPerfFreq.QuadPart);
                CSTLogFile::GetLogFile()
-> Write( " Counter %d statistics\r\n\tCounts: %d,\r\n\tMinTime: %08u ms,\r\n\tMaxTime: %08u ms,\r\n\tTotalTime: %08u ms,\r\n\tAverageTime: %08u ms "
                    m_nCounterIndex, m_nCounter, m_iMinTime, m_iMaxTime, m_iTotalTime, m_iAverageTime); 
            
/**/ ///*------------------------------------------------------------


主要就是×1000/系统的频率

改动后的日志
20 : 56 : 09 (00211262ms),thr  0x4F319EB6  :  =============================================
20 : 56 : 09 (00211263ms),thr  0x4F319EB6  : Log  is  started on  10.12 . 2005 , at  20 : 56 : 09 : 000 , executable: \ConnectDemo.exe (ProcID:  0x4f3162a2 ), compile time : Dec  10   2005   20 : 55 : 54
20 : 56 : 09 (00211263ms),thr  0x4F319EB6  :  *** Counter  0  at C:\ConnectDemo\ConnectDemoDlg.cpp, 66  initialized
20 : 56 : 09 (00211264ms),thr  0x4F319EB6  : Counter  0  started
20 : 56 : 09 (00211270ms),thr  0x4F319EB6  : Counter  0  check point at line  82 20239  ms from start, 20239ms from last checkpoint
20 : 56 : 09 (00211359ms),thr  0x4F319EB6  : Counter  0  check point at line  101 351048  ms from start, 330809ms from last checkpoint
20 : 56 : 09 (00211361ms),thr  0x4F319EB6  : Counter  0  stopped 353002ms from start, 1954ms from last checkpoint
20 : 56 : 09 (00211428ms),thr  0x4F319EB6  : Counter  0  started
20 : 56 : 09 (00211429ms),thr  0x4F319EB6  : Counter  0  check point at line  82 2306  ms from start, 2306ms from last checkpoint
20 : 56 : 09 (00211448ms),thr  0x4F319EB6  : Counter  0  check point at line  101 72327  ms from start, 70021ms from last checkpoint
20 : 56 : 09 (00211449ms),thr  0x4F319EB6  : Counter  0  stopped 74268ms from start, 1941ms from last checkpoint
20 : 56 : 10 (00212229ms),thr  0x4F319EB6  : Counter  0  statistics
    Counts: 
2 ,
    MinTime: 
00000020  ms,
    MaxTime: 
00000095  ms,
    TotalTime: 
00000115  ms,
    AverageTime: 
00000057  ms
20 : 56 : 10 (00212229ms),thr  0x4F319EB6  : Log finished
^_^,正常了吧
修改后的 代码在这里

也许还有地方没有修改完,但是对于我来说能用了。。。