Форум программистов, компьютерный форум, киберфорум
Наши страницы

Вывод в консоль из dll - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Функция суммирует каждый третий элемент (если он положительный) и возвращает полученную сумму http://www.cyberforum.ru/cpp-beginners/thread950915.html
Здравствуйте! Помогите пожалуйста, начал изучать С++ и вот остановился на такой задаче, если не сложно объясните как делать.. Написать функцию которая из передаваемого ей произвольного...
C++ Самый хитрый код (Несерьезная тема) Вот, собственно нашел в интернете код #include <cstdio> double m= {7709179928849219.0, 771}; int main() { m--?m*=2,main():printf((char*)m); } http://www.cyberforum.ru/cpp-beginners/thread950904.html
Отредактировать код, чтобы он заработал C++
int a;инициализирован int ...b...=a; как дописать чтобы сработало? вместо ... нужно что-то дописать, чтобы сработало Нужно срочно. Помогите, пожалуйста
C++ как сделать override метода
пытаюсь сделать override метода в С++ классе, но не выходит. Вместо этого метод переопределяется полностью, не выполняет код родительского метода. Что делаю не так? заголовок классов: ...
C++ Азы классов. Подскажите, плз http://www.cyberforum.ru/cpp-beginners/thread950862.html
Здравствуйте! Помогите, пожалуйста, разобраться. Вот код: class Name_pairs { public: string name; int age; vector<Name_pairs> names; Name_pairs (string n, int a)
C++ Подскажите литературу о многопоточности! Начинал читать QNX/UNIX Анатомия Параллелизма О.Цилюрик Е.Горошко, но там упор делается на QNX... Хотелось бы что-то связанное с многопоточностью вобщем и многопоточному программированию на С++... подробнее

Показать сообщение отдельно
gomodril
6 / 6 / 0
Регистрация: 10.10.2012
Сообщений: 132
11.09.2013, 11:50  [ТС]
Цитата Сообщение от Raali Посмотреть сообщение
Предполагалось что функция вызова окна консоли будет вызываться из дллки приложением, не в тот момент когда дллка подключается, а в тот момент когда приложение захочет этого (вызовет функцию из длл).

Мьютекс нужен для того, если все таки кто то(другой процесс) попытается второй раз запустить данное окно (и нам это не нужно), это как переменная, которая находится в межпроцессорном пространстве
А у меня разве не приложением вызывается окно консоли из dll? Если нет, то можно какой ни будь пример посмотреть?
Про класс мьютекс уже начал читать, это я так понимаю можно и на исключениях создать, правильно?

Добавлено через 20 часов 19 минут
Вынес AllocConsole из DllMain. Получилось вот так:

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
MT4_EXPFUNC void __stdcall ProcessOneArray(double *arr,int row)
    {
    HANDLE hOut=0;
    if(hOut==0)
        {
        AllocConsole();
        FILE *hOut = _fdopen(_open_osfhandle((long)GetStdHandle(STD_OUTPUT_HANDLE),2 /* _O_TEXT */),"w");
        *stdout = *stderr = *hOut;
        //cout << "hOut DO" << "\t" << hOut << endl;
        //_getch();
        }
 
    clrscr();                                   // Очищаем экран clrscr();
    cout << "row :" << row << endl;
    cout << endl << endl;                       //Перевод каретки ниже на две строки
 
    vector<double> am(arr,arr+row);
    int col2=am.size();
    cout << "size :" << col2 << endl;
    for(int i=0; i<row; i++) cout << fixed << setprecision(5) << am[i] << endl;
 
    if(hOut!=0)
        {
        cout << "hOut POSLE" << "\t" << hOut << endl;
        _getch();
        FreeConsole();
        hOut = 0;
        }
    }
Что самое интересное, FreeConsole ни разу не вызвалось по причине hOut = 0. Что сделано не правильно, ведь процесс как то уничтожается и без FreeConsole.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.