Вопрос № 31915: Здравствуйте уважаймые эксперты. У меня следующий вопрос.
Возможно ли в С++ многопоточное программирование, то есть чтобы некоторые процессы выполнялись одновременно. Например в Java есть такой класс Thread (если знаете конечно) который позволяет...Вопрос № 31948: Здраствуйте!
У меня есть xml - файл а мне надо заполнить CTreeCtrl (MFC) класс из этого файла.
не знаю как это организовать
Спасибо.
.Вопрос № 31952: Доброго времени суток! Решил заняться изучением программирования и начал с книги М.Уэйт, С.Прата, Д.Мартин "Язык Си" Москва "МИР" 1988 г. Ошибок в листинге программ достаточно, но удавалось исправить их самому (до вчерашнего вечер...Вопрос № 31961: Здравствуйте эксперты.
Подскажите мне как передавть информацию (в программа на c++) по сети в Linux(ядро 2.4, компилятор g++). Так-же ли это делаеться во FreeBSD?
Зарание спасибо за примеры, описания, ссылки на информацию на русском языке....Вопрос № 31972: Здравствуйте, уважаемые эксперты!
Пишу на C под Юникс (FreeBSD 6.0, gcc 3.4).
Подскажите, как реализовать таймар. То есть, в начале выполнения программы текущее время пишется в переменную t1, в конце программы время записывается в переменную ...
Вопрос № 31.915
Здравствуйте уважаймые эксперты. У меня следующий вопрос.
Возможно ли в С++ многопоточное программирование, то есть чтобы некоторые процессы выполнялись одновременно. Например в Java есть такой класс Thread (если знаете конечно) который позволяет такое делать. Есть ли что-то подобное в С++. Или это делается как-то через WinApi. Заранее благодарен за любую информацию.
Отправлен: 21.12.2005, 01:29
Вопрос задал: igorok (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Jadd
Здравствуйте, igorok!
Сам по себе язык не может содержать подобные конструкции. Это то, что делается средствами операционной системы. В языке С++ есть возможность использовать функции WinAPI. Есть функция CreateThread. Вот пример ее использования:
..............................................
int x = 0;
DWORD dwThreadID;
//Теперь создаем поток
HANDLE hThread = CreateThread(NULL, //по умолчанию
0, //используем инфу от компоновщика о размере стека
ThreadFunc, //наша функция потока
(PVOID) &x, //параметр этой функции - любые данные
0, //начать выполнение потока немедленно...можно CREATE_SUSPENDED
&dwThreadID //сюда вернется идентификатор потока
);
CloseHandle(hThread); //закрываем хэндл потока после завершения работы функции
Есть иные способы завершения потока. Отсылаю Вас к MSDN или книге Джеффри Рихтера "Windows для профессионалов. Создание эффективных приложений с учетом специфики 64-разрядной версии Windows". Там описаны методы управления потоками и прочее.
Удачи.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Отправлен: 21.12.2005, 09:28 Оценка за ответ: 5 Комментарий оценки: Спасибо за инфу. Самое смешное то, что эта книга у меня есть, а я не додумался даже туда заглянуть.
Ответ отправил: estiGi (статус: 9-ый класс)
Отправлен: 21.12.2005, 11:36 Оценка за ответ: 4 Комментарий оценки: Не понятно только что это за функции WinApi или сишные.
Отвечает: Zitz
Здравствуйте, igorok!
Апи, так это CreateThread
В МФЦ есть еще класс CWinThread
Ответ отправил: Zitz (статус: 3-ий класс)
Отправлен: 21.12.2005, 13:28 Оценка за ответ: 5 Комментарий оценки: Спасибо буду знать
Вопрос № 31.948
Здраствуйте!
У меня есть xml - файл а мне надо заполнить CTreeCtrl (MFC) класс из этого файла.
не знаю как это организовать
Спасибо.
Отправлен: 21.12.2005, 14:45
Вопрос задал: Santey (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Jadd
Здравствуйте, Santey!
Насколько я понял проблема в том, чтобы прочитать xml? Очень просто. Нужны классы для DOM модели. Они есть у билли (MSXML по-моему), а есть отдельные девелоперы. Посмотри тут: www.codeproject.com и www.codeguru.com. Там есть классы (парсеры и райтеры) для xml. Ну а в CTreeCtrl это добро скинуть - пара пустяков.
--------- Если в сердце дверь закрыта, нужно в печень постучаться
Ответ отправил: Jadd (статус: Специалист)
Отправлен: 21.12.2005, 15:42 Оценка за ответ: 4
Вопрос № 31.952
Доброго времени суток! Решил заняться изучением программирования и начал с книги М.Уэйт, С.Прата, Д.Мартин "Язык Си" Москва "МИР" 1988 г. Ошибок в листинге программ достаточно, но удавалось исправить их самому (до вчерашнего вечера). В ниже приведенном примере текста программы не могу понять, почему не отрабатывает до конца программа, доходит до ввода цены и все. Подскажите начинающему???
Приложение:
Отправлен: 21.12.2005, 15:02
Вопрос задал: Grekalov (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Straight
Здравствуйте, Grekalov!
Так вроде бы это программа ждет ввода знака 'n'. Не знаю, правда, зачем - над алгоритмом не думал, уж не обессудьте.
Ответ отправил: Straight (статус: 2-ой класс)
Отправлен: 21.12.2005, 15:13
Отвечает: Лучников Юрий Владимирович
Здравствуйте, Grekalov!
Остановка происходит из-за строчки-цикла
while (getchar()!='n');
Цикл не завершится до тех пор, пока не будет введен символ n.
Думаю он тут не нужен, так что смело его можете удалять).
Ответ отправил: Raptor1 (статус: Студент)
Отправлен: 24.12.2005, 10:37
Вопрос № 31.961
Здравствуйте эксперты.
Подскажите мне как передавть информацию (в программа на c++) по сети в Linux(ядро 2.4, компилятор g++). Так-же ли это делаеться во FreeBSD?
Зарание спасибо за примеры, описания, ссылки на информацию на русском языке.
Отправлен: 21.12.2005, 16:43
Вопрос задал: X (статус: 8-ой класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Muad Dib
Здравствуйте, X!
Очень простой вариант - это использование библиотеки QT. Достаточно вменяемый русский перевод книги по QT есть на opennet.ru, там одна из частей посвящена как раз возможностям QT по передачи данных по http и ftp протоколам, а так же организации собственых протоклов :) через tcp/ip и udp. (Жасмин Бланшет, Марк Саммерфилд. QT: программирование GUI на С++ - КУДИЦ-ОБРАЗ, Москва, 2005 - это если бумажную версию искать.)
Если нет желания завязываться с QT посмотрите книги:
Андрей Робачевский - Операционная система UNIX - там ест пример организации передачи данных по TCP/IP и UDP;
Шон Уолтон - Создание сетевых приложений в среде Linux.
Обе можно найти в электронном виде.
Примеры приводить не буду, потому что не влезет наверное )
Ответ отправил: Muad Dib (статус: 1-ый класс)
Отправлен: 22.12.2005, 07:37 Оценка за ответ: 5
Вопрос № 31.972
Здравствуйте, уважаемые эксперты!
Пишу на C под Юникс (FreeBSD 6.0, gcc 3.4).
Подскажите, как реализовать таймар. То есть, в начале выполнения программы текущее время пишется в переменную t1, в конце программы время записывается в переменную t2. В итоге время выполнения программы T = t2 - t1.
Пробовал перенести такой вариант, который у меня был в Виндовом варианте:
clock_t start, end;
start = clock();
//программа
end = clock();
T = (end-start)/CLK_TCK;
Но это не работает - выдает отрицательное время.
Есть другой способ?