#include //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); }