Форум программистов, компьютерный форум CyberForum.ru

Создания и работа консоли в графическом приложении - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Есть очень много маленьких текстовых файлов необходимо слить в один файл http://www.cyberforum.ru/cpp-beginners/thread1063340.html
Очень много маленьких файлов размером от 500 КБ до 90 МБ. Максимальная длина строки в файлах 80 символов. Всего таких файлов может быть от 2 гигабайт и более. Посоветуйте, как подступиться к программе чтобы она работала максимально быстро. Вот что я намудрил пока. Чтение и запись с помощью С++ отпадает слишком медленно или я не знаю как по другому. Сижу под Win 7. list<wstring>...
C++ Однонаправленный список. Операции: удалить элемент из заданной позиции, добавить элемент в заданную позицию,проверка на неравенство Помогите. Есть одна написанная. Условия: Очередь. Операции: “+” добавить элемент ; “-“ удалить элемент ; bool() проверка «Пуста ли очередь?» В ней все работает, все запускается, не могу переделать на вот это УСЛОВИЕ: Однонаправленный список. Операции: “” удалить элемент из заданной позиции int i; http://www.cyberforum.ru/cpp-beginners/thread1063336.html
Как проверить работает ли системный динамик на ноутбуке C++
в студии вставляю код, но не чего не слышно #include <windows.h> int main() { Beep(247, 500); Beep(417, 500); Beep(417, 500); Beep(370, 500); Beep(417, 500); Beep(329, 500);
C++ Архивирование файлов
Всем привет. Цель: сжать и запаролить файл (бинарный). Сейчас используется передача параметров в 7z.exe, запуск 7z производиться с помощью CreateProcess. Хочется избавиться от зависимостей в конечном приложении (ну или как максимум таскать за собой dll). В проекте используется boost, но там только сжатие, как повесить пароль не придумал. Пробывал 7z.dll, lib7zip, но не разобрался. Ткните носом, в...
C++ Проект http://www.cyberforum.ru/cpp-beginners/thread1063310.html
Всем привет!) Подкиньте идею какой проект можно сделать используя GTK+ и MVS2008.)) p.s. текстовые редакторы и шифрование не подходит( чтобы было очень интересное и простое)
C++ Из первой строчки убрать слова, которые встречаются во второй Пользователь вводит с клавиатуры 2 строки. Из первой строчки убрать слова, которые встречаются во второй. Например: 1:user,internet,soft,it 2:computer,test,soft,c++,user 3:internet,it Вот что вышло: подробнее

Показать сообщение отдельно
AndyAdjutor
0 / 0 / 0
Регистрация: 13.07.2013
Сообщений: 9
05.01.2014, 05:17     Создания и работа консоли в графическом приложении
Доброго времени суток, уважаемые форумчане. Я один из множества студентов, поступивших на программирование для создания своей игры. Я изучаю с++ всего пол года, до этого был год си, и по этому могу не знать всех нюансов. Сначала, работая на си, я думал создать игру в консоли, а потом переделать под графику, но во 2 семестре нам стали преподавать openGL, и я понял, что переделать будет сложновато. Но так как особо изучать графику у меня времени нет, то я решил, что буду реализовывать все в консоли, и потихоньку добавлять все в графическое приложение, по этому мне нужно гибридное приложение, с окном, но и с консолью. Окно я создаю на winapi, прочитав пару книжек я набрал небольшой кусок кода, который позволяет создать окно и только, вот он:
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
#include <windows.h>
#include <iostream>
using namespace std;
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT Message, UINT wParam, LONG lParam)
{
    switch(Message)
    {
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
    }
    return DefWindowProc(hWnd,Message,wParam,lParam);
}
 
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    LPSTR lpczCmdParam, int nCmdShow)
{
    HWND hWnd;
    WNDCLASS WndClass;
    MSG Msg;
    LPCTSTR lpzClassName=TEXT("My Window Class!");
    WndClass.style=CS_HREDRAW|CS_VREDRAW;
    WndClass.lpfnWndProc=WndProc;
    WndClass.cbClsExtra=0;
    WndClass.cbWndExtra=0;
    WndClass.hInstance=hInstance;
    WndClass.hIcon=LoadIcon(NULL,IDI_WINLOGO);
    WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
    WndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
    WndClass.lpszMenuName=NULL;
    WndClass.lpszClassName=lpzClassName;
    if(!RegisterClass(&WndClass))
    {
        MessageBox(NULL,"Cannot register class","Error",MB_OK);
        return 0;
    }
    hWnd=CreateWindow(lpzClassName,TEXT("NEW v 0.00000gui"),
        WS_OVERLAPPEDWINDOW, 60,60,200,200, NULL, NULL, 
        hInstance, NULL);
    if(!hWnd)
    {
        MessageBox(NULL,"Cannot create window","Error",MB_OK);
        return 0;
    }
 
    ShowWindow(hWnd,nCmdShow);
    UpdateWindow(hWnd);
 
    while(GetMessage(&Msg,NULL,0,0))
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
    return Msg.wParam;
}
Работаю я в visual studio 2012. Для создания проекта я выбрал пустой проект, что бы всякие stdafx.h не мешали мне. Данный код работал, все было хорошо, но надо же консоль где то взять. Погуглив, я нашёл функцию AllocConsole(), которая своё дело выполняет. Но когда я работал в консоли, код начинался с мейна, где то же он должен начинатся и здесь, так что я выбрал вот этот участок кода:
C++
1
2
3
4
5
6
7
8
9
10
ShowWindow(hWnd,nCmdShow);
    UpdateWindow(hWnd);
    AllocConsole();
        //main{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    HANDLE h=GetStdHandle(STD_OUTPUT_HANDLE);
        //}
    while(GetMessage(&Msg,NULL,0,0))
       {
Все работает, консоль есть, но как в неё выводить что то? cout не работает, пришлось использовать WriteConsole(), но использовать каждый раз запись наподобие WriteConsole(h,(const char*)s.data(),6,0,0); вместо простого cout<<s; как то не очень хочется, так что вот первый вопрос:
1 как в созданной через AllocConsole() консоли использовать функции cout/cin, или хотя бы printf?

Увидев, что консоль создаётся и план мой можно воплотить в жизнь, я решил соединить все мои различные версии этого проекта воедино и создал один новый проект. Ну и слияние я решил начать как раз с графической части, ибо в пустом проекте winmain это основа. Но скопировав код, я обнаружил, что он не компилируется. Как выяснилось, строки MessageBox(NULL,"Cannot register class","Error",MB_OK); и им подобные не компилируются, точнее текстовые части, но если написать MessageBox(NULL,L"Cannot register class",L"Error",MB_OK);. Я конечно не спец, но вроде дело в юникоде. Я не знаю, как он включился, включался ли вообще и как его использовать. Как отключить его в vs2012 я не нашёл. И я вроде бы не против юникода, я считаю, что за ним будущее, ибо миру нужна универсальность, но каждый раз писать L"" и использовать wstring не хочется, да и нужно ли? и вот второй вопрос:
2 как отключить юникод, и нужно ли его вообще отключать, может все нормальные программисты используют wstring и прочее?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru