Utworzenie konsoli

0

Hej!

Mam pewien mały problem. Mianowicie wstrzykuję dllkę do jakiegoś okienkowego procesu i chciałbym stworzyć konsolę aby widzieć co się dzieje z moją dllką (przynajmniej na czas pracy z nią). Kiedyś zrobiłem to przy użyciu okropnych WinApiowych funkcji (AllocConsole, czy coś takiego), a moja funkcja Write wywoływała kolejnych 5 WinApiowych. Troszkę to było upierdliwe, a ja chciałbym używać zwykłego couta czy printfa...
Więc jak stworzyć konsolkę (najlepiej bez WinApi) i używać w niej printfa lub/i couta (obstawiam, że można użyć WinApi do utworzenia konsoli, a potem jakoś przekierować strumienie. Ale co jeśli program ma być multi-platformowy?)

Pozdrawiam, Wronq!

0
#include <stdio.h>
#include <windows.h>
#include <fcntl.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR pCmdLine, int nCmdShow)
{
  FILE *console;
  AllocConsole();
  console = _fdopen(_open_osfhandle(GetStdHandle(STD_OUTPUT_HANDLE),_O_TEXT),"w");
  *stdout = *console;
  setvbuf(stdout,NULL,_IONBF,0);

  printf("Hello, world!");

  MessageBox(0,0,0,0);
  return 0;
}

Ale co jeśli program ma być multi-platformowy?
Multiplatformowa DLL-ka która ma się wstrzykiwać do procesu? Zapomnij.

0

Wygląda dość rozsądnie, dzięki za odpowiedź.

0

żeby używać couta, dodaj jeszcze linijkę

ios::sync_with_stdio();

1 użytkowników online, w tym zalogowanych: 0, gości: 1