Utworzenie konsoli

Odpowiedz Nowy wątek
2011-08-30 10:23
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!


Some people see things as they are, and say "why?". I dream things that never were and say "why not?".

Pozostało 580 znaków

2011-08-30 10:34
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.

edytowany 1x, ostatnio: Azarien, 2011-08-30 10:35

Pozostało 580 znaków

2011-08-30 11:09
0

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


Some people see things as they are, and say "why?". I dream things that never were and say "why not?".

Pozostało 580 znaków

2011-08-30 12:52
0

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

ios::sync_with_stdio();

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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