Log Parser C Example
发布时间:2020-12-16 09:17:24 所属栏目:百科 来源:网络整理
导读:Log Parser C Example Log Parser is a free command-line tool from Microsoft that lets you run SQL queries against a variety of log files and other system data sources,and get the results out to an array of destinations,from SQL tables to CS
Log Parser C Example Log Parser is a free command-line tool from Microsoft that lets you run SQL queries against a variety of log files and other system data sources,and get the results out to an array of destinations,from SQL tables to CSV files #include <atlbase.h> #include <stdio.h> #include <stdlib.h> #include <assert.h> #include "LogParser.tlh" //由下一行产生 //#import "LogParser.dll" raw_native_types //由type library产生.tlh .tli int main() { ::CoInitialize( NULL ); // COM 初始化 MSUtil::ILogQuery *plog; MSUtil::ICOMCSVInputContext *pin; MSUtil::ILogRecordset *pset; //CLSID clsid1; //HRESULT hr1 = ::CLSIDFromProgID( L"MSUtil.LogQuery",&clsid1 ); //assert( SUCCEEDED( hr1 ) ); // 如果失败,说明没有注册组件 //__uuidof()可取代CLSIDFromProgID HRESULT hr = ::CoCreateInstance( __uuidof(MSUtil::LogQueryClass),NULL,CLSCTX_INPROC_SERVER,__uuidof(MSUtil::ILogQuery),(LPVOID *)&plog ); assert( SUCCEEDED( hr ) ); hr = ::CoCreateInstance( __uuidof(MSUtil::COMCSVInputContextClass),__uuidof(MSUtil::ICOMCSVInputContext),(LPVOID *)&pin ); pset = plog->Execute(L"select * from DailyLog.csv where Score>50",pin); int ncount = 0; while(!pset->atEnd()) { /*VARIANT idx; VariantInit(&idx); idx.bstrVal = L"Score"; idx.vt = VT_BSTR; */ for(int i=2;i<=11;i++) { CComVariant idx(i); //若不用CComVariant则须用上面Variant 被mark的部分 //用debug检查返回Variant里面是什么型态 CComVariant val = pset->getRecord()->getValue(idx); if(val.vt == VT_BSTR) wprintf(L"%st",val.bstrVal); else if(val.vt == VT_I4) printf("%dt",val.lVal); } printf("n"); ncount++; pset->moveNext(); } printf("Total:%dn",ncount); return 0; } 原文:大专栏 ?Log Parser C Example (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |