Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не знаю с чего начать (WinAPI Visual C++) 
:(
    Опции темы
necuk
Дата 15.11.2009, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Товарищи! Надеюсь на вашу адекватную помощь!)
Я, вобщем то, новичок в C++, т.к. все что я знаю/умею - это то, что дядя Прата написал в своей книжке Программирование на C++.
На 5м семестре (сейчас) у нас началось системное программирование и я получил следующее задание:

Разработать систему, эмулирующую работу нескольких вычислителей.
Пояснение: некоторый процесс (или несколько процессов) генерирует заявки на обслуживание и ставит их в очередь. В качестве заявок взять вычисление некоторой мат. Функции, хотя это не принципиально, т.к. время выполнения заявки задается в условных вычислительных единицах и поэтому не зависит от реального времени требуемого на вычисление выбранной мат. функции. Существуют процессы обработчики заявок, которые последовательно выбирают заявки из очереди. Время, необходимое для обработки каждой заявки выбирается случайным в некоторых пределах и задается, например, в условных операциях. Каждый обработчик имеет некоторую скорость обработки заявок заданную в количестве условных операций в секунду.

Все коды программ должны быть написаны на языке программирования «C» или «С++», при этом использовать следует только механизмы «Win32 API». Использование каких либо иных библиотек (например MFC) запрещено.

Приложение консольное) и, кстати, должно все быть написано в VS 2005 и успешно в ней компилиться)

Нет, я ни в коем случае не прошу вас писать мне прогу! Я хочу сам разобраться и понять суть WinAPI в C++. Но, просмотрев соответствующий раздел на вашем форуме, я толком ничего не понял, т.к. привык писать прогу так: создаю Empty Project, пихаю туда один срр-файл и в нем пишу код. Это было год назад и тема была ООП, в которой я разобрался (по Прате) и все сделал. Сейчас, как я понял, дело обстоит по-другому и я несколько растерялся). Да, я нашел информацию в гугле, в яндексе и тд, но не смог ее переварить в силу, видимо, слишком малого знания с++. Хотелось бы увидеть хотя бы простейший пример программы на VS C++ с созданием процесса, потока, каких-нибудь простейших действий с ними, и, конечно пояснений, с учетом того что я - NOOB.

Заранее спасибо, ваш necuk =)
PM MAIL   Вверх
Kipter
Дата 15.11.2009, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 2.5.2006

Репутация: нет
Всего: нет



Для начала ознакомились бы с тем что такое WinAPI =)

вы все также можете создать Empty Project, пихнуть туда один cpp фаил, подключить #include <windows.h>
и использовать API винды =)

при этом API функций... ухохо огромное количество для всевозможных разных задач, но тем не менее  не все там есть =)
Для вашей задачи я не вижу смысла применять WinApi
PM MAIL   Вверх
necuk
Дата 15.11.2009, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Так написано в задании) WinAPI и все тут...
PM MAIL   Вверх
IKM2007
Дата 15.11.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: нет
Всего: 40



Начни читать Джеффри Рихтер, "Windows для профессионалов".

Цитата(necuk @  15.11.2009,  14:44 Найти цитируемый пост)
Хотелось бы увидеть хотя бы простейший пример программы на VS C++ с созданием процесса, потока, каких-нибудь простейших действий с ними, и, конечно пояснений, с учетом того что я - NOOB.

Вот тебе простой пример создания процесса A, и его дочерных процессов B и C. Пояснении не будет, лень излагать 30 страниц книги, кстати пример из этой же книги, на 68-ой странице. Советую начать прочтение книги. Никто не сможет тебе более коротко все обьяснить, чем автор книги.

Код

#include <windows.h>

//int WINAPI WinMain(HINSTANCE hinstExe, HINSTANCE, PSTR pszCmdLine, int nCmdShow)
int main(int argc, TCHAR* argv[])
{
    STARTUPINFO si = {sizeof(si)};
    SECURITY_ATTRIBUTES saProcess, saThread;
    PROCESS_INFORMATION piProcessB, piProcessC;
    TCHAR szPath[MAX_PATH];

    saProcess.nLength = sizeof(saProcess);
    saProcess.lpSecurityDescriptor = NULL;
    saProcess.bInheritHandle = TRUE;

    saThread.nLength = sizeof(saThread);
    saThread.lpSecurityDescriptor = NULL;
    saThread.bInheritHandle = FALSE;

    lstrcpy(szPath, TEXT("ProcessB"));
    CreateProcess(NULL, szPath, &saProcess, &saThread,
        FALSE, 0, NULL, NULL, &si, &piProcessB);

lstrcpy(szPath, TEXT("ProcessC"));
CreateProcess(NULL, szPath, NULL, NULL, 
              TRUE, 0, NULL, NULL, &si, &piProcessC);

return 0;
}



--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
necuk
Дата 15.11.2009, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.11.2009

Репутация: нет
Всего: нет



Читаю эту книгу... почти ничего не понимаю :(... неужели по WinAPI в C++ нет ничего похожего по стилю изложения на Прату? :(
PM MAIL   Вверх
IKM2007
Дата 15.11.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зима близко
**


Профиль
Группа: Участник
Сообщений: 702
Регистрация: 26.4.2008
Где: olmedreca

Репутация: нет
Всего: 40



Цитата(necuk @  15.11.2009,  16:44 Найти цитируемый пост)
Читаю эту книгу... почти ничего не понимаю :(... неужели по WinAPI в C++ нет ничего похожего по стилю изложения на Прату? :( 

Не знаю этого Прату. Если что-то не понимаешь, создай тему, задавай свой вопрос, ответят. Книга Рихтера самый простой и легкоусваиваемый для изучения WinAPI.


--------------------
"К чёрту обстоятельства, я создаю возможности."
Брюс Ли
PM MAIL Skype   Вверх
Kipter
Дата 16.11.2009, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 2.5.2006

Репутация: нет
Всего: нет



Цитата(necuk @  15.11.2009,  14:44 Найти цитируемый пост)
Пояснение: некоторый процесс (или несколько процессов) генерирует заявки на обслуживание и ставит их в очередь.


И так, для очереди можно использовать контейнеры STL,  а для разделяемой очереди между процессами, смотрите тут:
http://forum.vingrad.ru/forum/topic-247705.html


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0479 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.