Создание выходной документации
предыдущей запущенной копии приложения; lpCmdLine – указатель на командную строку; nCmdShow – режим начального отображения главного окна приложения.
Вот пример простейшей программы для Windows:
/
Модуль APIMain
/
#include windows.h
int WINAPI WinMain ( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int. nCmdShow)
return (FALSE);
Код программы несколько больше, чем просто вызов функции main, за счет подключаемого файла WINDOWS.H, который включает в себя еще пару десятков заголовочных файлов, состоящих из десятков тысяч строк, поэтому время компиляции даже такой программы может занять несколько минут.
От предыдущих версий это описание на первый взгляд отличается лишь использованием нового типа для возвращаемого значения. Реально все сложнее. Значение параметра hPrevInstance до сих пор позволяло определить наличие уже запущенных копий программы. В большинстве случаев это нужно для исключения повторного запуска одной и той же программы. В Win32 API этот параметр всегда равен NULL (и оставлен исключительно для совместимости). Связано это с тем, что каждое 32-разрядное приложение запускается в своем адресном пространстве, в котором, естественно, нет никаких его копий или других приложений. В документации Microsoft предлагает несколько путей для определения наличия предыдущей копии. Один из них заключается в использовании функции
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 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |


