Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 17.11.2012
Сообщений: 6
1

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

29.11.2012, 10:17. Показов 1580. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2012, 10:17
Ответы с готовыми решениями:

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

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

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

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

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

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

Что делает эта функция?
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 -...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru