0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 6

Что делает эта функция?

29.11.2012, 10:17. Показов 1613. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
wsprintf(lpszComLine, "C:\\ConsoleProcess.exe %d", (int)hThread);
Что она делает?? и что значить %d??
Вот весь код на всякий случай:
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
71
72
73
74
75
76
77
78
79
80
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;
 
void thread()
{
  for (;;)
  {
    int count;
    count++;
    Sleep(500);
    cout<<"count = "<<count<<endl;
  }
}
 
int main()
{
  system("chcp 1251>text");
  char lpszComLine[80];  // для командной строки
 
  STARTUPINFO si;
  PROCESS_INFORMATION pi;
  SECURITY_ATTRIBUTES sa;
 
  HANDLE  hThread;
  DWORD  IDThread;
 
  cout<<"Нажмите любую клавишу для запуска потока-счетчика.\n";
  getch();
 
  // устанавливает атрибуты защиты потока
  sa.nLength = sizeof(SECURITY_ATTRIBUTES);
  sa.lpSecurityDescriptor = NULL;    // защита по умолчанию
  sa.bInheritHandle = TRUE;          // дескриптор потока наследуемый
  
  // запускаем поток-счетчик
  hThread = CreateThread(&sa, 0, (LPTHREAD_START_ROUTINE)thread, NULL, 0, 
                          &IDThread);
  if (hThread == NULL)
    return GetLastError();
 
  // устанавливаем атрибуты нового процесса
  ZeroMemory(&si, sizeof(STARTUPINFO));
  si.cb=sizeof(STARTUPINFO);
  // формируем командную строку
  wsprintf(lpszComLine, "C:\\ConsoleProcess.exe %d", (int)hThread); 
  // запускаем новый консольный процесс
  if (!CreateProcess(
      NULL,    // имя процесса
      lpszComLine,  // адрес командной строки
      NULL,    // атрибуты защиты процесса по умолчанию
      NULL,    // атрибуты защиты первичного потока по умолчанию
      TRUE,    // наследуемые дескрипторы текущего процесса
               // наследуются новым процессом
      CREATE_NEW_CONSOLE,  // новая консоль  
      NULL,    // используем среду окружения процесса предка
      NULL,    // текущий диск и каталог, как и в процессе предке
      &si,     // вид главного окна - по умолчанию
      &pi      // здесь будут дескрипторы и идентификаторы
               // нового процесса и его первичного потока
      )
    )
  {
    cout<<"Новый процесс не создан.\n";
    system("pause");
    return GetLastError();
  }
  // закрываем дескрипторы нового процесса
  CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
 
  // ждем закрытия потока-счетчика
  WaitForSingleObject(hThread, INFINITE);
  system("pause");
  // закрываем дескриптор потока
  CloseHandle(hThread);
 
  return 0;
}
Заранее спасибо)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.11.2012, 10:17
Ответы с готовыми решениями:

Что делает функция ZwUnmapViewOfSection?
Что делает эта функция? На msdn: отменяет просмотр раздела из виртуального адресного пространства предмета процесса. Для чего...

Что делает функция GetStockObject?
Непойму смысл этой функции, что значит ,,считывает описатель пpедопpеделенного основного пеpа, кисти или шpифта.,, чем шрифты этой...

Что делает функция __builtin_popcount()?
Что делает функция __builtin_popcount() ?

1
1 / 1 / 2
Регистрация: 29.11.2012
Сообщений: 7
30.11.2012, 13:21
wsprintf форматирует строку, %d это спецификация формата,
которая вызывает первый аргумент (слева направо), далее преобразовывает и копирует в строку.
все типы спецификации можно найти в MSDN - http://msdn.microsoft.com/en-u... 85%29.aspx
в твоем случаи d - это десятичное число. s к примеру строка.
Но лучше эту функцию не использовать, есть более безопасные аналоги - читай ниже в msdn
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.11.2012, 13:21
Помогаю со студенческими работами здесь

Что делает эта функция
String q,z; String x,s,g,X; q=&quot;&quot;; if(Form16-&gt;RadioGroup1-&gt;ItemIndex==0) { q=&quot;01&quot;; z=&quot;Январь&quot;; x=&quot;31.&quot;; x=x+q; ...

что делает эта функция?
она создаёт массив списков? void create_massiv_of_lists(node** x,int l) { int i,n; for (i=0;i&lt;l;i++) { ...

Что делает эта функция?
func(x) { if (x == 0) { return 0 } return func(x / 10) + x % 10 }

Что делает эта функция?...
F(A) П=2 В=1 Ит=0 Пока В&gt;0 Цикл М=А%П А=(А-М)/П Ит=Ит+М*В Если А=0 То В=0

Что делает эта функция?
Что делает эта функция? int vich_cods(const void *a, const void *b){ // return *(char*)a - *(char*)b; }


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Исследование рантаймов контейнеров Docker, containerd и rkt
Mr. Docker 11.05.2025
Когда мы говорим о контейнерных рантаймах, мы обсуждаем программные компоненты, отвечающие за исполнение контейнеризованных приложений. Это тот слой, который берет образ контейнера и превращает его в. . .
Micronaut и GraalVM - будущее микросервисов на Java?
Javaican 11.05.2025
Облачные вычисления безжалостно обнажили ахиллесову пяту Java — прожорливость к ресурсам и медлительный старт приложений. Традиционные фреймворки, годами радовавшие корпоративных разработчиков своей. . .
Инфраструктура как код на C#
stackOverflow 11.05.2025
IaC — это управление и развертывание инфраструктуры через машиночитаемые файлы определений, а не через физическую настройку оборудования или интерактивные инструменты. Представьте: все ваши серверы,. . .
Инъекция зависимостей в ASP.NET Core - Практический подход
UnmanagedCoder 11.05.2025
Инъекция зависимостей (Dependency Injection, DI) — это техника программирования, которая кардинально меняет подход к управлению зависимостями в приложениях. Представьте модульный дом, где каждая. . .
Битва за скорость: может ли Java догнать Rust и C++?
Javaican 11.05.2025
Java, с её мантрой "напиши один раз, запускай где угодно", десятилетиями остаётся в тени своих "быстрых" собратьев, когда речь заходит о сырой вычислительной мощи. Rust и C++ традиционно занимают. . .
Упрощение разработки облачной инфраструктуры с Golang
golander 11.05.2025
Причины популярности Go в облачной инфраструктуре просты и одновременно глубоки. Прежде всего — поразительная конкурентность, реализованная через горутины, которые дешевле традиционных потоков в. . .
Создание конвейеров данных ETL с помощью Pandas
AI_Generated 10.05.2025
Помню свой первый опыт работы с большим датасетом — это была катастрофа из неотформатированных CSV-файлов, странных значений NULL и дубликатов, от которых ехала крыша. Тогда я потратил три дня на. . .
C++ и OpenCV - Гайд по продвинутому компьютерному зрению
bytestream 10.05.2025
Компьютерное зрение — одна из тех технологий, которые буквально меняют мир на наших глазах. Если оглянуться на несколько лет назад, то сложно представить, что алгоритмы смогут не просто распознавать. . .
Создаем Web API с Flask и SQLAlchemy
py-thonny 10.05.2025
В веб-разработке Flask и SQLAlchemy — настоящие рок-звезды бэкенда, особенно когда речь заходит о создании масштабируемых API. Эта комбинация инструментов прочно закрепилась в арсенале разработчиков. . .
Квантовое будущее для разработчиков: Что необходимо знать сегодня
EggHead 10.05.2025
Квантовые вычисления больше не являются чем-то из области научной фантастики. Пока большинство разработчиков погружены в осваивание очередного JavaScript-фреймворка или изучение новых возможностей. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru