默认情况下,只有将 Catalog/Core OS/Windows CE devices/Communication Services and Networking/Networking Features/Internet Connection Sharing (ICS)/Gateway Logging 加入 workspace 后,事件日志服务才会作为一个模块加入 CE_MODULES。我们可以在 $(_WINCEROOT)/PUBLIC/CEBASE/OAK/MISC/servers.bat 看到:
if not "%SYSGEN_GATEWAY_LOGGING%"=="1" goto no_gatewayLogging
set __SYSGEN_EVENTLOG=1
set SERVERS_MODULES=%SERVERS_MODULES% RGLogMsgs RGLogEventMon
set SYSGEN_IPHLPAPI=1
set SYSGEN_WINSOCK=1
:no_gatewayLogging
...
if "%__SYSGEN_EVENTLOG%"=="1" set SYSGEN_SERVICES=1
以及在 $(_WINCEROOT)/PUBLIC/CEBASE/OAK/MISC/winceos.bat 看到:
REM // Event logging
if "%__SYSGEN_EVENTLOG%"=="1" set CE_MODULES=%CE_MODULES% eventlog eventlogmsgs
因而可知只要设置 __SYSGEN_EVENTLOG=1 即可使用事件日志服务,为便于使用可以创建一个环境变量 PRJ_ENABLE_EVENTLOG 来控制是否使用事件日志服务。我们需要编辑上文所述的 $(_WINCEROOT)/PUBLIC/CEBASE/OAK/MISC/winceos.bat 为:
REM // Event logging
if "%PRJ_ENABLE_EVENTLOG%"=="1" set __SYSGEN_EVENTLOG=1
if "%__SYSGEN_EVENTLOG%"=="1" set CE_MODULES=%CE_MODULES% eventlog eventlogmsgs
为使用事件日志服务,应使用菜单 Platform->Settings,在“Platform Settings”对话框中选择“Environment”标签,设置环境变量 SET PRJ_ENABLE_EVENTLOG = 1。