Files
BCompat/log.c
2026-03-23 15:11:08 +01:00

34 lines
1.2 KiB
C

#include <windows.h>
//From msvcrt.dll
int __declspec(dllimport) __cdecl printf (const char* format, ...);
int __declspec(dllimport) __cdecl sprintf (char* stream, const char* format, ...);
int main() {
HANDLE pipe = CreateNamedPipe(TEXT("\\\\.\\pipe\\bcompat"), PIPE_ACCESS_DUPLEX,
PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE, 1, 512, 512, 0, NULL);
if (pipe == INVALID_HANDLE_VALUE) {
DWORD error = GetLastError();
if (error == ERROR_ACCESS_DENIED) {
MessageBox(NULL, TEXT("Another instance is already running"), TEXT("BCompat Log"), MB_OK | MB_ICONERROR);
} else {
TCHAR buffer[128];
sprintf(buffer, TEXT("Error opening logging pipe: 0x%lx"), error);
MessageBox(NULL, buffer, TEXT("BCompat Log"), MB_OK | MB_ICONERROR);
}
return -1;
}
while (TRUE) {
if (ConnectNamedPipe(pipe, NULL) || GetLastError() == ERROR_PIPE_CONNECTED) {
char buffer[512];
DWORD read;
if (ReadFile(pipe, buffer, sizeof(buffer), &read, NULL)) {
printf("%s\n", buffer);
}
DisconnectNamedPipe(pipe);
}
}
CloseHandle(pipe);
}