Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
- // Windows Header Files:
- #include <windows.h>
- #include <iostream>
- #include <vector>
- #include <string>
- #include <sstream>
- #include <fstream>
- #include <algorithm>
- #include <iterator>
- #include <ctime>
- #define MISS_CREATE 0
- #define MISS_BRIEF_END 1
- #define MISS_END 2
- #define UNIT_CONNECT 3
- #define UNIT_KILLED 4
- #define UNIT_REFRESH 5
- #define PATH "C:\\Stat\\logs\\"
- #define BUFF 256
- BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
- {
- switch (ul_reason_for_call)
- {
- case DLL_PROCESS_ATTACH:
- case DLL_THREAD_ATTACH:
- case DLL_THREAD_DETACH:
- case DLL_PROCESS_DETACH:
- break;
- }
- return TRUE;
- }
- extern "C"
- {
- __declspec (dllexport) void __stdcall RVExtension(char *output, int outputSize, const char *function);
- }
- // Global vars
- std::string outfile_name;
- using namespace std;
- vector<string> split(const string& s, const string& delim, const bool keep_empty = true) {
- vector<string> result;
- if (delim.empty()) {
- result.push_back(s);
- return result;
- }
- string::const_iterator substart = s.begin(), subend;
- while (true) {
- subend = search(substart, s.end(), delim.begin(), delim.end());
- string temp(substart, subend);
- if (keep_empty || !temp.empty()) {
- result.push_back(temp);
- }
- if (subend == s.end()) {
- break;
- }
- substart = subend + delim.size();
- }
- return result;
- }
- void __stdcall RVExtension(char *output, int outputSize, const char *function)
- {
- string data(function);
- const vector<string> params = split(function, "#@");
- string event = params[0];
- // Time
- time_t rawtime;
- struct tm *timeinfo;
- time(&rawtime);
- timeinfo = localtime(&rawtime);
- char buffer[BUFF];
- strftime(buffer, BUFF, "%F_%H-%M-%S", timeinfo);
- string time_str(buffer);
- // Creating mission file
- if (stoi(event) == MISS_CREATE) {
- outfile_name = PATH + time_str + "_" + params[1];
- string out = "NEW FILE: " + outfile_name;
- strncpy(output, out.c_str(), sizeof(out.c_str()));
- } else {
- strncpy(output, "WORKS", 5);
- }
- // Write data
- std::ofstream outfile;
- outfile.open(outfile_name.c_str(), ios_base::app);
- outfile << time_str + "#@" + data << endl;
- outfile.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement