Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
4 / 4 / 0
Регистрация: 24.10.2011
Сообщений: 84

Отображение подсказок пользователю в консоли и получение ответа

15.07.2012, 03:06. Показов 1669. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять как работает программа... Всю теорию впитал, а вот связать вместе не получается. Во всем виновата книга Джонсона Харта
У меня есть три функции...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "stdafx.h"
#include "Envirmnt.h"
#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <stdarg.h>
 
BOOL PrintStrings (HANDLE hOut,...)
 
{
    //Запись сообщений в буфер экрана
    DWORD MsgLen, Count;
    LPTSTR pMsg;
    va_list pMsgList;
    va_start (pMsgList, hOut);
    while ((pMsg = va_arg (pMsgList, LPTSTR)) != NULL)
    {
        MsgLen = _tcslen(L"pMsg");
        if (!WriteConsole (hOut, pMsg, MsgLen, &Count, NULL) && !WriteFile(hOut, pMsg, MsgLen * sizeof(TCHAR), &Count, NULL))
            return FALSE;
    }
    va_end (pMsgList);
    return TRUE;
}
 
BOOL PrintMsg (HANDLE hOut, LPTSTR pMsg)
{
    //Если передан 1 параметр
    return PrintStrings(hOut, pMsg);
}
 
BOOL ConsolePrompt (LPTSTR pPromptMsg, LPTSTR pResponse, DWORD MaxTChar, BOOL Echo)
{
    //Вывод в консоль и запрашивание ответа
    HANDLE hStdIn, hStdOut;
    DWORD TCharIn, EchoFlag;
    BOOL Succes;
    hStdIn = CreateFileA(("CONIN$"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_ALWAYS,
        FILE_ATTRIBUTE_NORMAL, NULL);
    hStdOut = CreateFileA(("CONOUT$"),GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_ALWAYS, 
        FILE_ATTRIBUTE_NORMAL, NULL);
    EchoFlag = Echo ? ENABLE_ECHO_INPUT : 0;
    Succes = 
        SetConsoleMode (hStdIn, ENABLE_LINE_INPUT | EchoFlag | ENABLE_PROCESSED_INPUT)
        && SetConsoleMode(hStdOut, ENABLE_WRAP_AT_EOL_OUTPUT | ENABLE_PROCESSED_OUTPUT)
        && PrintStrings(hStdOut, pPromptMsg)
        && ReadConsole(hStdIn, pResponse,MaxTChar, &TCharIn, NULL);
 
    if(Succes) pResponse [TCharIn-2] = '\0';
    CloseHandle (hStdIn);
    CloseHandle(hStdOut);
    return Succes;
 
 
}
 
//Не могу понять как теперь воспользоваться программой... Дескриптор получил, передал его и на этом все :)
int _tmain(int argc, LPTSTR argv[] )
{
    HANDLE hCon, hOut;
    LPTSTR Msg = "Hello! I'm your programm."; 
    LPTSTR Resp = "lol";
    
    hOut = CreateFileA(("CONOUT$"),GENERIC_WRITE | GENERIC_READ, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
    SetStdHandle(STD_OUTPUT_HANDLE, hOut);
    //hOut = GetStdHandle(STD_OUTPUT_HANDLE); Это походу не надо 
    PrintStrings (hOut,Msg );
 
    return 0;
}
Как мне их теперь заставить работать? Из main вызываю ее, но консоль появляется и исчезает сразу
C++
1
2
3
4
5
6
"msg_print.exe": Загружено: "E:\coding\WinAPI\msg_print\Debug\msg_print.exe", Символы загружены.
"msg_print.exe": Загружено: "C:\Windows\System32\ntdll.dll", Невозможно найти или открыть файл PDB
"msg_print.exe": Загружено: "C:\Windows\System32\kernel32.dll", Невозможно найти или открыть файл PDB
"msg_print.exe": Загружено: "C:\Windows\System32\KernelBase.dll", Невозможно найти или открыть файл PDB
"msg_print.exe": Загружено: "C:\Windows\System32\msvcr100d.dll", Символы загружены.
Программа "[2120] msg_print.exe: Машинный код" завершилась с кодом 0 (0x0).
Что не так? Как мне заставить это все вместе работать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.07.2012, 03:06
Ответы с готовыми решениями:

Получение ответа с командной строки и неправильное отображение в TextBox
Вопрос раскрыт в заголовке темы :) но все же: простенькая программа которая отправляет запрос в командную строку Windows и возвращает...

Получение ответа с командной строки и неправильное отображение в TextBox
Возникла проблема - при работе командной строки в консольном приложение символы отображаются каряво помогите составить код правильного...

Отображение подсказок к элементам управления формы
Вроде бы всё сделал, а подсказки не отображаются при наезде мышки?

1
Нуб со стажем
 Аватар для kent
36 / 34 / 10
Регистрация: 19.02.2012
Сообщений: 118
15.07.2012, 18:36
перед
C++
1
return 0;
напишите
C++
1
system("pause");
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.07.2012, 18:36
Помогаю со студенческими работами здесь

Отображение нескольких подсказок на одном окне
Если создать пару ToolTip'ов, привязать их к 2 разным контролам и отобразить используя IsOpen, второй ToolTip ни за что не закроется......

Как сделать отображение подсказок по функциям в редакторе проекта dll
Как в обычном проекте, подводишь мышь и высвечивается подсказка , такая-то функция с такими-то параметрами.

Отображение подсказок для строк, превышающих длину ComboBox при наведении курсора
На форме имеется ComboBox, в него автоматически заносятся данные. Длина ComboBox равна приблизительно 4 см, а длина строк, которые там...

Получение ответа
Всем привет. Целей день просидел и нигде не нашел решение. Проблема в следующем: Программно отправляю пост запрос, а в ответ...

GET запрос и получение ответа
Приветствую всех. Есть такой кусок кода, который проверяет на веб-сервере наличие файла, если он есть, программа пропускает дальше...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru