找了一个不错的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是错误的,继续在网上查询
查到如下代码:
看看改改代码成不成,
主要的改动就是两处
///*--------------------------原代码----------------------------

//
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
^_^,正常了吧
修改后的
代码在这里
也许还有地方没有修改完,但是对于我来说能用了。。。