2011-07-04 18 views
8

Win32 C ile yazılmış basit bir windows servisini değiştirmem gerekiyor (C++ değil).C'deki pencere olay günlüğüne yazmanın bir yolu var mı?

Olay günlüğü girişlerini eventcreate.exe kullanmadan Windows olay günlüğüne yazmak için kullanabileceğim bir kitaplık var mı? Ya da bir C++ programı olarak derlemek için değiştirmek zorunda mıyım?

+0

Program aracılığıyla bunu yapmak için [buradan] başlayabilirsiniz (http://msdn.microsoft.com/en-us/library/dd996928 (v = vs.85) .aspx). – Jon

cevap

14

Evet, ReportEvent ve example işlevlerine bakın. .mc dosyası bir .dll içine bağlantılı bir .res dosyasına derlendi

; // MyEventProvider.mc 
; // This is the header section. 
    SeverityNames=(Success=0x0:STATUS_SEVERITY_SUCCESS 
       Informational=0x1:STATUS_SEVERITY_INFORMATIONAL 
       Warning=0x2:STATUS_SEVERITY_WARNING 
       Error=0x3:STATUS_SEVERITY_ERROR 
      ) 
    FacilityNames=(System=0x0:FACILITY_SYSTEM 
       Runtime=0x2:FACILITY_RUNTIME 
       Stubs=0x3:FACILITY_STUBS 
       Io=0x4:FACILITY_IO_ERROR_CODE 
      ) 
    LanguageNames=(English=0x409:MSG00409) 
; // The following are the categories of events. 
    MessageIdTypedef=WORD 
    MessageId=0x1 
    SymbolicName=NETWORK_CATEGORY 
    Language=English 
    Network Events 
    ... rest of file omitted 

:

derlemek için

.mc uzantılı olay sağlayıcısı kaynak dosyası şuna benzer mesajı metin dosyası, aşağıdaki komutu kullanın: ileti derleyici oluşturulan kaynakları derlemek için

mc -U provider.mc 

, aşağıdaki komutu kullanın:

rc provider.rc 
mesajı tablo dize kaynakları içeren yalnızca kaynak DLL oluşturmak için aşağıdaki komutu kullanın (eğer bir Visual Studio komut istemi komutunu çalıştırabilirsiniz):

link -dll -noentry provider.res 

...

İlgili konular