Показать сообщение отдельно

  #3  
Старый 26.09.2016, 00:55
FYP
Познавший АНТИЧАТ
Регистрация: 09.03.2013
Сообщений: 1,771
С нами: 6935121

Репутация: 233


По умолчанию

[QUOTE="Picador"]

Может херово объяснил. У меня есть, например, .asi плагин. Я хочу следить за тем, как в нем изменяются переменные. Для этого хочу вывести их каким-нибудь образом на экран. Лучше всего - в консольку. Как это можно сделать, как через длл создать консоль? Такую. в которую потом ожно будет сделать cout

C++:





Код:
/* некоторые инклуды лишние, не помню какие из них нужны
#include 
#include 
#include 
#include 
#include 
#include 
*/
void
RedirectIOToConsole
(
void
)
{
const
WORD MAX_CONSOLE_LINES
=
500
;
int
hConHandle
;
long
lStdHandle
;
CONSOLE_SCREEN_BUFFER_INFO coninfo
;
FILE
*
fp
;
// allocate a console for this app
AllocConsole
(
)
;
// set the screen buffer to be big enough to let us scroll text
GetConsoleScreenBufferInfo
(
GetStdHandle
(
STD_OUTPUT_HANDLE
)
,
&
coninfo
)
;
coninfo
.
dwSize
.
Y
=
MAX_CONSOLE_LINES
;
SetConsoleScreenBufferSize
(
GetStdHandle
(
STD_OUTPUT_HANDLE
)
,
coninfo
.
dwSize
)
;
// redirect unbuffered STDOUT to the console
lStdHandle
=
(
long
)
GetStdHandle
(
STD_OUTPUT_HANDLE
)
;
hConHandle
=
_open_osfhandle
(
lStdHandle
,
_O_TEXT
)
;
fp
=
_fdopen
(
hConHandle
,
"w"
)
;
*
stdout
=
*
fp
;
setvbuf
(
stdout
,
NULL
,
_IONBF
,
0
)
;
// redirect unbuffered STDIN to the console
lStdHandle
=
(
long
)
GetStdHandle
(
STD_INPUT_HANDLE
)
;
hConHandle
=
_open_osfhandle
(
lStdHandle
,
_O_TEXT
)
;
fp
=
_fdopen
(
hConHandle
,
"r"
)
;
*
stdin
=
*
fp
;
setvbuf
(
stdin
,
NULL
,
_IONBF
,
0
)
;
// redirect unbuffered STDERR to the console
lStdHandle
=
(
long
)
GetStdHandle
(
STD_ERROR_HANDLE
)
;
hConHandle
=
_open_osfhandle
(
lStdHandle
,
_O_TEXT
)
;
fp
=
_fdopen
(
hConHandle
,
"w"
)
;
*
stderr
=
*
fp
;
setvbuf
(
stderr
,
NULL
,
_IONBF
,
0
)
;
// make cout, wcout, cin, wcin, wcerr, cerr, wclog and clog
// point to console as well
std
::
ios
::
sync_with_stdio
(
)
;
}
 
Ответить с цитированием