42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
#ifndef BCOMPAT_COMMON_H
|
|
#define BCOMPAT_COMMON_H
|
|
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <windows.h>
|
|
|
|
#define DLL_EXPORT __declspec(dllexport)
|
|
|
|
#define getFunction(dllName, functionName) GetProcAddress(GetModuleHandleA(dllName), functionName)
|
|
|
|
#ifndef DLL_NAME
|
|
#define DLL_NAME "Unknown"
|
|
#endif
|
|
|
|
void logMSG(LPCSTR msg, LPCSTR level) {
|
|
char buffer[512];
|
|
char name[128];
|
|
GetModuleFileName(NULL, name, sizeof(name));
|
|
|
|
typedef int (__cdecl *sprintfPtr)(char* stream, const char* format, ...);
|
|
sprintfPtr sprintf = (sprintfPtr) getFunction("msvcrt.dll", "sprintf");
|
|
sprintf(buffer, "[%s] [%s | %s] %s", level, name, DLL_NAME, msg);
|
|
|
|
CallNamedPipe(TEXT("\\\\.\\pipe\\bcompat"), buffer, sizeof(buffer), NULL, 0, NULL, NMPWAIT_NOWAIT);
|
|
}
|
|
|
|
#define _logMsg(level, ...) { \
|
|
char buffer[512]; \
|
|
typedef int (__cdecl *sprintfPtr)(char* stream, const char* format, ...); \
|
|
sprintfPtr sprintf = (sprintfPtr) getFunction("msvcrt.dll", "sprintf"); \
|
|
sprintf(buffer, __VA_ARGS__); \
|
|
logMSG(buffer, level); \
|
|
}""
|
|
|
|
#define logDebug(...) _logMsg("DEBUG", __VA_ARGS__)
|
|
#define logInfo(...) _logMsg("INFO", __VA_ARGS__)
|
|
#define logWarn(...) _logMsg("WARN", __VA_ARGS__)
|
|
#define logError( ...) _logMsg("ERROR", __VA_ARGS__)
|
|
|
|
#endif //BCOMPAT_COMMON_H
|