写Windows应用程序日志(event log)

阅读: 评论:0

1.      创建Message DLL

(1)    VS2012 -->newproject-->Visual C++ --> Win32 à Win32 Project, 项目命名为MyMessages, 点击OK.


(2)    设置application type 为DLL,additional option 为Empty Project, Finish.


(3)    设置项目属性, Configuration Property àlinker à advancedà No entry point, 设置为Yes。此为Resource DLL必须设置。


(4)    Solution Explorer 中右击项目添加newitem, 选择Utility à text file,文件名及后缀为


(5)    写*.mc文件。下面链接是微软给出的例子。

msdn.microsoft/en-us/library/windows/desktop/dd996907(v=vs.85).aspx

(6)    配置项目属性。 Configuration Properties à Build Eventsà Command line, 设为mc. 。


(7)    Build 项目文件, 可以生成MyMessages.h 和文件。


 (8)    将这两个文件添加添加到项目中,并重新生成,此时产生我们需要的MyMessages.dll.

 

 

2.      注册表中注册该Message dll.

(1)    在以下目录下新建项,命名为MyApp。

再为MyApp创建两个子项,并设值如图所示。其中EventMessageFile的值即为所生成Message dll 的路径。

 


3.      创建Client,写Windows应用程序日志。本例创建了控制台程序,在Unicode下编译。

 

#include "stdafx.h"
#include "windows.h"
#include "MyMessages.h"		// 拷贝到Client项目中。

void   ReportOneEvent(LPCTSTR   szMsg)   
{   
	HANDLE h = RegisterEventSource(NULL, _T("MyApp"));      
	if(h == NULL)     
		printf("register source error");     

	if   (!ReportEvent(h,               
		EVENTLOG_ERROR_TYPE,
		6,               
		MSG_BAD_COMMAND, //so the event description is "error three"
		NULL,      
		1,              
		wcslen(szMsg),  
		&szMsg,   //this szMsg("event test") is the event data   
		(void*)szMsg))                                
		printf("event report error");     

	DeregisterEventSource(h);     
} 
int _tmain(int argc, _TCHAR* argv[])
{
	ReportOneEvent(_T("Event Logging Test!"));
	return 0;
}


 

编译运行后,打开windows事件日志,可以看到刚才所写的日志。

 

 

4.      参考链接

(1)      Message DLL

(2)      deproject/Articles/32611/Log-Events-in-VC

本文发布于:2025-04-06 12:21:00,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/1743913271584716.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:应用程序   日志   Windows   event   log
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23