Рихтер программирование под windows для профессионалов

Работа по теме: Создание эффективных приложений для Windows Джеффри Рихтер 2004 (Книга). Глава: WINDOWS. Предмет: Операционные системы и системное программирование. ВУЗ: БГУИР.

СОЗДАНИЕ ЭФФЕКТИВНЫХ

WIN32-ПРИЛОЖЕНИЙ

Джеффри Рихтер

ЧАCTЬ I МАТЕРИАЛЫ ДЛЯ ОБЯЗАТЕЛЬНОГО ЧТЕНИЯ……………………………………………

8

ГЛАВА 1. Обработка ошибок ……………………………………………………………………………………..

8

Вы тоже можете это сделать…………………………………………………………………………………..

12

Программа-пример ErrorShow………………………………………………………………………………..

13

ГЛАВА 2 Unicode ……………………………………………………………………………………………………..

14

Наборы символов…………………………………………………………………………………………………..

14

Одно- и двухбайтовые наборы символов…………………………………………………………….

14

Unicode: набор широких символов ……………………………………………………………………..

15

Почему Unicode?……………………………………………………………………………………………………

16

Windows 2000 и Unicode ………………………………………………………………………………………..

16

Windows 98 и Unicode ……………………………………………………………………………………………

17

Windows CE и Unicode …………………………………………………………………………………………..

18

В чью пользу счет? ………………………………………………………………………………………………..

18

Unicode и СОМ ……………………………………………………………………………………………………..

18

Как писать программу с использованием Unicode…………………………………………………..

19

Unicode и библиотека С ……………………………………………………………………………………..

19

Типы данных, определенные в Windows для Unicode ………………………………………….

21

Unicode- и ANSI-функции в Windows …………………………………………………………………

21

Строковые функции Windows …………………………………………………………………………….

23

Создание программ, способных использовать и ANSI, и Unicode ……………………………

23

Ресурсы ……………………………………………………………………………………………………………..

26

Текстовые файлы ……………………………………………………………………………………………….

27

Перекодировка строк из Unicode в ANSI и обратно …………………………………………….

28

ГЛАВА 3 Объекты ядра …………………………………………………………………………………………….

31

Что такое объект ядра ……………………………………………………………………………………………

31

Учет пользователей объектов ядра ……………………………………………………………………..

32

Защита……………………………………………………………………………………………………………….

33

Таблица описателей объектов ядра ………………………………………………………………………..

35

Создание объекта ядра ……………………………………………………………………………………….

35

Закрытие объекта ядра ……………………………………………………………………………………….

37

Совместное использование объектов ядра несколькими процессами ………………………

38

Наследование описателя объекта………………………………………………………………………..

38

Изменение флагов описателя ……………………………………………………………………………..

41

Именованные объекты ……………………………………………………………………………………….

42

Дублирование описателей объектов……………………………………………………………………

46

ЧАСТЬ II НАЧИНАЕМ РАБОТАТЬ ……………………………………………………………………………..

50

ГЛАВА 4 Процессы…………………………………………………………………………………………………..

51

Ваше первое Windows-приложение………………………………………………………………………..

52

Описатель экземпляра процесса …………………………………………………………………………

55

Описатель предыдущего экземпляра процесса ……………………………………………………

57

Командная строка процесса………………………………………………………………………………..

57

Переменные окружения ……………………………………………………………………………………..

58

Привязка к процессорам …………………………………………………………………………………….

61

Режим обработки ошибок …………………………………………………………………………………..

61

Текущие диск и каталог для процесса …………………………………………………………………

62

Текущие каталоги для процесса………………………………………………………………………….

62

Определение версии системы……………………………………………………………………………..

63

Функция CreateProcess …………………………………………………………………………………………..

67

Параметры pszApplicationName и pszCommandLine…………………………………………….

67

Параметры psaProcess, psaThread и blnheritHandles ……………………………………………..

69

Параметр fdwCreate ……………………………………………………………………………………………

70

Параметр pvEnvironment…………………………………………………………………………………….

72

Параметр pszCurDir ……………………………………………………………………………………………

72

Параметр psiStartlnfo ………………………………………………………………………………………….

72

Параметр ppiProclnfo………………………………………………………………………………………….

76

Завершение процесса …………………………………………………………………………………………….

78

Возврат управления входной функцией первичного потока ………………………………..

78

Функция ExitProcess …………………………………………………………………………………………..

78

Функция TerminateProcess ………………………………………………………………………………….

80

Когда все потоки процесса уходят………………………………………………………………………

80

Что происходит при завершении процесса ………………………………………………………….

81

Дочерние процессы ……………………………………………………………………………………………….

81

Запуск обособленных дочерних процессов …………………………………………………………

83

Перечисление процессов, выполняемых в системе …………………………………………………

84

Программа-пример Processlnfo …………………………………………………………………………..

84

ГЛАВА 5 Задания ……………………………………………………………………………………………………..

87

Определение ограничений, налагаемых на процессы в задании ………………………………

90

Включение процесса в задание ………………………………………………………………………………

96

Завершение всех процессов в задании ……………………………………………………………………

97

Получение статистической информации о задании…………………………………………………

97

Уведомления заданий…………………………………………………………………………………………..

101

Программа-пример JobLab …………………………………………………………………………………..

103

ГЛАВА 6 Базовые сведения о потоках……………………………………………………………………..

104

В каких случаях потоки создаются……………………………………………………………………….

105

И в каких случаях потоки не создаются………………………………………………………………..

107

Ваша первая функция потока ……………………………………………………………………………….

108

Функция CreateThread ………………………………………………………………………………………….

108

Параметр psa ……………………………………………………………………………………………………

109

Параметр cbStack ……………………………………………………………………………………………..

109

Параметры pfnStartAddr и pvParam……………………………………………………………………

110

Параметр fdwCreate ………………………………………………………………………………………….

111

Параметр pdwThreadlD …………………………………………………………………………………….

111

Завершение потока ………………………………………………………………………………………………

112

Возврат управления функцией потока ………………………………………………………………

112

Функция ExitThread………………………………………………………………………………………….

112

Функция TerminateThread …………………………………………………………………………………

113

Если завершается процесс ………………………………………………………………………………..

113

Что происходит при завершении потока……………………………………………………………

114

Кое-что о внутреннем устройстве потока ……………………………………………………………..

114

Некоторые соображения по библиотеке С/С++ …………………………………………………….

117

Ой, вместо _beginthreadex я по ошибке вызвал CreateThread ……………………………..

126

Библиотечные функции, которые лучше не вызывать ……………………………………….

126

Как узнать о себе …………………………………………………………………………………………………

127

Преобразование псевдоописателя в настоящий описатель …………………………………

128

ГЛАВА 7 Планирование потоков, приоритет и привязка к процессорам …………………..

130

Приостановка и возобновление потоков……………………………………………………………….

131

Приостановка и возобновление процессов ……………………………………………………………

132

Функция Sleep ……………………………………………………………………………………………………..

134

Переключение потоков ………………………………………………………………………………………..

134

Определение периодов выполнения потока ………………………………………………………….

135

Структура CONTEXT…………………………………………………………………………………………..

138

Приоритеты потоков ……………………………………………………………………………………………

142

Абстрагирование приоритетов……………………………………………………………………………..

143

Программирование приоритетов ………………………………………………………………………….

147

Динамическое изменение уровня приоритета потока ………………………………………..

149

Подстройка планировщика для активного процесса ………………………………………….

151

Программа-пример Scheduling Lab ……………………………………………………………………

152

Привязка потоков к процессорам………………………………………………………………………

153

ГЛАВА 8 Синхронизация потоков в пользовательском режиме………………………………..

158

Атомарный доступ: семейство Inferlockect-функций …………………………………………….

158

Кэш-линии…………………………………………………………………………………………………………..

164

Более сложные методы синхронизации потоков……………………………………………………

165

Худшее, что можно сделать ……………………………………………………………………………..

166

Критические секции …………………………………………………………………………………………….

168

Критические секции: важное дополнение………………………………………………………….

171

Критические секции и спин-блокировка……………………………………………………………

174

Критические секции и обработка ошибок …………………………………………………………

175

Несколько полезных приемов …………………………………………………………………………..

175

ГЛАВА 9 Синхронизация потоков с использованием объектов ядра…………………………

179

Wait-функции ………………………………………………………………………………………………………

181

Побочные эффекты успешного ожидания …………………………………………………………….

184

События ………………………………………………………………………………………………………………

185

Программа-пример Handshake ………………………………………………………………………….

189

Ожидаемые таймеры ……………………………………………………………………………………………

191

Ожидаемые таймеры и АРС-очередь ……………………………………………………………………

194

И еще кое-что о таймерах …………………………………………………………………………………

196

Семафоры ……………………………………………………………………………………………………………

197

Мьютексы……………………………………………………………………………………………………………

199

Отказ от объекта-мьютекса ………………………………………………………………………………

201

Мьютексы и критические секции …………………………………………………………………………

201

Программа-пример Queue…………………………………………………………………………………

202

Сводная таблица объектов, используемых для синхронизации потоков…………………

205

Другие функции, применяемые в синхронизации потоков…………………………………….

206

Асинхронный ввод-вывод на устройствах…………………………………………………………

206

Функция WaitForlnputldle …………………………………………………………………………………

206

Функция MsgWaitForMultipleObjects(Ex) ………………………………………………………….

207

Функция WaitForDebugEvent ……………………………………………………………………………

207

Функция SignalObjectAndWait ………………………………………………………………………….

208

ГЛАВА 10 Полезные средства для синхронизации потоков ……………………………………..

209

Реализация критической секции: объект-оптекс……………………………………………………

210

Программа-пример Optex …………………………………………………………………………………

212

Создание инверсных семафоров и типов данных, безопасных в многопоточной среде

……………………………………………………………………………………………………………………………

213

Программа-пример lnterlockedType …………………………………………………………………..

218

Синхронизация в сценарии «один писатель/группа читателей» ……………………………..

218

Программа-пример SWMRG …………………………………………………………………………….

220

Реализация функции WaitForMultipleExpressions ………………………………………………….

221

Программа-пример WaitForMultExp………………………………………………………………….

223

ГЛАВА 11 Пулы потоков ………………………………………………………………………………………..

227

Сценарий 1: асинхронный вызов функций ……………………………………………………………

228

Сценарий 2: вызов функций через определенные интервалы времени …………………..

231

Программа-пример TimedMsgBox …………………………………………………………………….

234

Сценарий 3: вызов функций при освобождении отдельных объектов ядра …………….

235

Сценарий 4; вызов функций по завершении запросов на асинхронный ввод-вывод .237

ГЛАВА 12 Волокна …………………………………………………………………………………………………

239

Работа с волокнами ……………………………………………………………………………………………..

239

Программа-пример Counter ………………………………………………………………………………

242

ЧАСТЬ III УПРАВЛЕНИЕ ПАМЯТЬЮ……………………………………………………………………….

244

ГЛАВА 13 Архитектура памяти в Windows ……………………………………………………………..

244

Виртуальное адресное пространство процесса ……………………………………………………..

245

Как адресное пространство разбивается на разделы ……………………………………………..

245

Раздел для выявления нулевых указателей (Windows 2000 и Windows 98) …………

246

Раздел для совместимости с программами DOS и 16-разрядной Windows (только

Windows 98) …………………………………………………………………………………………………….

247

Раздел для кода и данных пользовательского режима (Windows 2000 и Windows 98)

………………………………………………………………………………………………………………………..

247

Закрытый раздел размером 64 Кб (только Windows 2000)………………………………….

249

Раздел для общих MMF (только Windows 98)……………………………………………………

249

Раздел для кода и данных режима ядра (Windows 2000 и Windows 98) ………………

249

Регионы в адресном пространстве ………………………………………………………………………..

250

Передача региону физической памяти ………………………………………………………………….

251

Физическая память и страничный файл ………………………………………………………………..

251

Физическая память в страничном файле не хранится ………………………………………..

254

Атрибуты защиты ………………………………………………………………………………………………..

255

Защита типа «копирование при записи» ……………………………………………………………

256

Специальные флаги атрибутов защиты……………………………………………………………..

257

Подводя итоги……………………………………………………………………………………………………..

257

Блоки внутри регионов …………………………………………………………………………………….

260

Особенности адресного пространства в Windows 98………………………………………….

265

Выравнивание данных …………………………………………………………………………………………

269

ГЛАВА 14 Исследование виртуальной памяти …………………………………………………………

273

Системная информация ……………………………………………………………………………………….

273

Программа-пример Syslnfo ……………………………………………………………………………….

275

Статус виртуальной памяти………………………………………………………………………………….

275

Программа-пример VMStat ………………………………………………………………………………

277

Определение состояния адресного пространства…………………………………………………..

278

Функция VMQuery …………………………………………………………………………………………..

279

Программа-пример VMMap ……………………………………………………………………………..

281

ГЛАВА 15 Использование виртуальной памяти в приложениях ……………………………….

284

Резервирование региона в адресном пространстве ………………………………………………..

284

Передача памяти зарезервированному региону …………………………………………………….

286

Резервирование региона с одновременной передачей физической памяти……………..

287

В какой момент региону передают физическую память ………………………………………..

287

Возврат физической памяти и освобождение региона …………………………………………..

289

В какой момент физическую память возвращают системе …………………………………

290

Программа-пример VMAIloc…………………………………………………………………………….

291

Изменение атрибутов защиты ………………………………………………………………………………

293

Сброс содержимого физической памяти……………………………………………………………….

294

Программа-пример MemReset…………………………………………………………………………..

296

Механизм Address Windowing Extensions (только Windows 2000)………………………….

297

Программа-пример AWE ………………………………………………………………………………….

301

ГЛАВА 16 Стек потока ……………………………………………………………………………………………

302

Стек потока в Windows 98 ……………………………………………………………………………………

305

Функция из библиотеки С/С++ для контроля стека……………………………………………….

307

Программа-пример Summation……………………………………………………………………………..

309

ГЛАВА 17 Проецируемые в память файлы ………………………………………………………………

311

Проецирование в память EXE- и DLL-файлов ………………………………………………………

311

Статические данные не разделяются несколькими экземплярами EXE или DLL ..313

Статические данные разделяются несколькими экземплярами EXE или DLL…….

315

Программа-пример Applnst ………………………………………………………………………………

319

Файлы данных, проецируемые в память ……………………………………………………………….

321

Метод 1: один файл, один буфер ………………………………………………………………………

321

Метод 2: два файла, один буфер ……………………………………………………………………….

321

Метод 3: один файл, два буфера ……………………………………………………………………….

322

Метод 4: один файл и никаких буферов…………………………………………………………….

322

Использование проецируемых в память файлов ……………………………………………………

322

Этап1: создание или открытие объекта ядра «файл»………………………………………….

323

Этап 2: создание объекта ядра «проекция файла» ……………………………………………..

324

Этап 3: проецирование файловых данных на адресное пространство процесса ….

327

Этап 4: отключение файла данных от адресного пространства процесса ……………

329

Этапы 5 и 6: закрытие объектов «проекция файла» и «файл» …………………………….

331

Программа-пример FileRev ………………………………………………………………………………

331

Обработка больших файлов …………………………………………………………………………………

334

Проецируемые файлы и когерентность…………………………………………………………………

336

Базовый адрес файла, проецируемого в память …………………………………………………….

337

Особенности проецирования файлов на разных платформах…………………………………

338

Совместный доступ процессов к данным через механизм проецирования……………..

341

Файлы, проецируемые на физическую память из страничного файла ……………………

342

Программа-пример MMFShare………………………………………………………………………….

343

Частичная передача физической памяти проецируемым файлам …………………………..

344

Программа-пример MMFSparse ………………………………………………………………………..

345

ГЛАВА 18 Динамически распределяемая память……………………………………………………..

349

Стандартная куча процесса ………………………………………………………………………………….

349

Дополнительные кучи в процессе…………………………………………………………………………

350

Защита компонентов ………………………………………………………………………………………..

350

Более эффективное управление памятью ………………………………………………………….

351

Локальный доступ ……………………………………………………………………………………………

352

Исключение издержек, связанных с синхронизацией потоков……………………………

352

Быстрое освобождение всей памяти в куче ……………………………………………………….

353

Создание дополнительной кучи ………………………………………………………………………..

353

Выделение блока памяти из кучи ……………………………………………………………………..

354

Изменение размера блока …………………………………………………………………………………

355

Определение размера блока………………………………………………………………………………

356

Освобождение блока ………………………………………………………………………………………..

356

Уничтожение кучи……………………………………………………………………………………………

357

Использование куч в программах на С++ ………………………………………………………….

357

Другие функции управления кучами…………………………………………………………………….

361

ЧАСТЬ IV ДИНАМИЧЕСКИ ПОДКЛЮЧАЕМЫЕ БИБЛИОТЕКИ ……………………………..

363

ГЛАВА 19 DLL: основы ………………………………………………………………………………………….

363

DLL и адресное пространство процесса………………………………………………………………..

364

Общая картина …………………………………………………………………………………………………….

366

Создание DLL-модуля………………………………………………………………………………………….

369

Что такое экспорт …………………………………………………………………………………………….

370

Создание DLL для использования с другими средствами разработки (отличными от

Visual C++) ………………………………………………………………………………………………………

372

Создание ЕХЕ-модуля………………………………………………………………………………………….

373

Что такое импорт ……………………………………………………………………………………………..

374

Выполнение ЕХЕ-модуля …………………………………………………………………………………….

376

ГЛАВА 20 DLL: более сложные методы программирования…………………………………….

377

Явная загрузка DLL и связывание идентификаторов …………………………………………….

378

Явная загрузка DLL………………………………………………………………………………………….

378

Явная выгрузка DLL…………………………………………………………………………………………

380

Явное подключение экспортируемого идентификатора …………………………………….

382

Функция входа/выхода…………………………………………………………………………………………

383

Уведомление DLL_PROCESS_ATTACH …………………………………………………………..

385

Уведомление DLL_PROCESS_DETACH …………………………………………………………..

386

Уведомление DLL_THREAD_ATTACH ……………………………………………………………

388

Уведомление DLL_THREAD_DETACH ……………………………………………………………

389

Как система упорядочивает вызовы DIIMain …………………………………………………….

390

Функция DllMain и библиотека С/С++………………………………………………………………

393

Отложенная загрузка DLL ……………………………………………………………………………………

394

Программа-пример DelayLoadApp ……………………………………………………………………

398

Переадресация вызовов функций …………………………………………………………………………

399

Известные DLL ……………………………………………………………………………………………………

400

Перенаправление DLL …………………………………………………………………………………………

402

Модификация базовых адресов модулей ………………………………………………………………

402

Связывание модулей ……………………………………………………………………………………………

408

ГЛАВА 21 Локальная память потока ……………………………………………………………………….

410

Динамическая локальная память потока……………………………………………………………….

411

Использование динамической TLS……………………………………………………………………

413

Статическая локальная память потока ………………………………………………………………….

416

ГЛАВА 22 Внедрение DLL и перехват API-вызовов…………………………………………………

417

Пример внедрения DLL ……………………………………………………………………………………….

418

Внедрение DLL c использованием реестра……………………………………………………………

420

Внедрение DLL с помощью ловушек ……………………………………………………………………

422

Утилита для сохранения позиций элементов на рабочем столе ………………………….

423

Внедрение DLL с помощью удаленных потоков …………………………………………………..

426

Программа-пример lnjLib …………………………………………………………………………………

430

Библиотека lmgWalk.dll ……………………………………………………………………………………

431

Внедрение троянской DLL …………………………………………………………………………………..

433

Внедрение DLL как отладчика……………………………………………………………………………..

434

Внедрение кода в среде Windows 98 через проецируемый в память файл………………

434

Внедрение кода через функцию CreateProcess ………………………………………………………

434

Перехват API-вызовов: пример …………………………………………………………………………….

435

Перехват API-вызовов подменой кода ………………………………………………………………

436

Перехват API-вызовов с использованием раздела импорта………………………………..

436

Программа-пример LastMsgBoxlnfo ………………………………………………………………….

440

ЧАСТЬ V СТРУКТУРНАЯ ОБРАБОТКА ИСКЛЮЧЕНИЙ …………………………………………

442

ГЛАВА 23 Обработчики завершения ……………………………………………………………………….

442

Примеры использования обработчиков завершения ……………………………………………..

443

Funcenstein1……………………………………………………………………………………………………..

443

Funcenstein2……………………………………………………………………………………………………..

444

Funcenstein3……………………………………………………………………………………………………..

446

Funcfurter1 ……………………………………………………………………………………………………….

447

Проверьте себя: FuncaDoodleDoo ……………………………………………………………………..

447

Funcenstein4……………………………………………………………………………………………………..

449

Funcarama1 ………………………………………………………………………………………………………

450

Funcarama2 ………………………………………………………………………………………………………

451

Funcarama3 ………………………………………………………………………………………………………

451

Funcarama4: последний рубеж…………………………………………………………………………..

453

И еще о блоке finally ………………………………………………………………………………………..

454

Funcfurter2 ……………………………………………………………………………………………………….

455

Программа-пример SEHTerm ……………………………………………………………………………

456

ГЛАВА 24 Фильтры и обработчики исключений ……………………………………………………..

458

Примеры использования фильтров и обработчиков исключений …………………………..

458

Funcmeister1 …………………………………………………………………………………………………….

459

Funcmeister2 …………………………………………………………………………………………………….

459

EXCEPTION_EXECUTE_HANDLER……………………………………………………………………

462

Некоторые полезные примеры ………………………………………………………………………….

463

Глобальная раскрутка……………………………………………………………………………………….

466

Остановка глобальной раскрутки ……………………………………………………………………..

469

EXCEPTION_CONTINUE_EXECUTION………………………………………………………………

471

Будьте осторожны с EXCEPTION_CONTINUE_EXECUTION …………………………..

472

EXCEPTION_CONTINUE_SEARCH…………………………………………………………………….

473

Функция GetExceptionCode ………………………………………………………………………………….

476

Функция GetExceptionlnformation …………………………………………………………………………

480

Программные исключения …………………………………………………………………………………..

484

ГЛАВА 25 Необработанные исключения и исключения С++ ……………………………………

487

Отладка по запросу………………………………………………………………………………………………

490

Отключение вывода сообщений об исключении …………………………………………………..

491

Принудительное завершение процесса ……………………………………………………………..

491

Создание оболочки вокруг функции потока………………………………………………………

491

Создание оболочки вокруг всех функций потоков …………………………………………….

492

Автоматический вызов отладчика …………………………………………………………………….

492

Явный вызов функции UnhandledExceptionFilter …………………………………………………..

493

Функция UnhandledExceptionFilter изнутри…………………………………………………………..

494

Исключения и отладчик ……………………………………………………………………………………….

495

Программа-пример Spreadsheet…………………………………………………………………………

498

Исключения С++ и структурные исключения……………………………………………………….

501

Перехват структурных исключений в С++ ………………………………………………………..

503

ЧАСТЬ VI ОПЕРАЦИИ С ОКНАМИ…………………………………………………………………………..

507

ГЛАВА 26 Оконные сообщения ………………………………………………………………………………

507

Очередь сообщений потока ………………………………………………………………………………….

508

Посылка асинхронных сообщений в очередь потока …………………………………………….

508

Посылка синхронных сообщений окну…………………………………………………………………

510

Пробуждение потока ……………………………………………………………………………………………

515

Флаги состояния очереди …………………………………………………………………………………

516

Алгоритм выборки сообщений из очереди потока …………………………………………….

517

Пробуждение потока с использованием объектов ядра или флагов состояния

очереди ……………………………………………………………………………………………………………

521

Передача данных через сообщения ………………………………………………………………………

524

Программа-пример CopyData ……………………………………………………………………………

527

Как Windows манипулирует с ANSI/Unicode-символами и строками …………………….

527

ГЛАВА 27 Модель аппаратного ввода и локальное состояние ввода ………………………..

529

Windows для профессионалов: создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows, 4-ое издание

Год: 2008

Добавил: Admin 19 Апр 12

Проверил: Admin 19 Апр 12

Формат:

 PDF (3652 Kb)

  • Currently 0/5

Рейтинг: 0/5 (Всего голосов: 0)

Аннотация

Windows для профессионалов: создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows, 4-ое издание

Другие книги автора Рихтер Джеффри

Другие книги серии «Для профессионалов»

Похожие книги

Комментарии к книге «Windows для профессионалов: создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows, 4-ое издание»

Комментарий не найдено. Будьте первыми!

Чтобы оставить комментарий или поставить оценку книге Вам нужно зайти на сайт или зарегистрироваться

Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной версии Windows

Это издание — практически новая книга, посвященная программированию серьезных приложений на Microsoft Visual С++ в операционных системах Windows 2000 (32- и 64-разрядных версиях) и Windows 98 с использованием функций Windows API. Состоит из 27 глав, двух приложений и предметного указателя. Гораздо глубже, чем в предыдущих изданиях, рассматриваются такие темы, как взаимодействие с операционной системой, библиотеки С/С++, программирование DLL и оптимизация кода, описываются новые механизмы и функции, появившиеся в Windows 2000, и приводится информация, специфическая для 64-разрядной Windows 2000. В этом издании автор, перейдя с языка С на С++, переработал все программы-примеры и представил ряд новых приложений, например ProcessInfo и LISWatch. Также появились совершенно новые материалы: выравнивание данных, привязка потоков к процессорам, кэш-линии процессоров, архитектура NUMA, перехват API-вызовов и др. Книга предназначена профессиональным программистам, владеющим языком С/С++ и имеющим опыт разработки Windows-приложений.

EPUB | FB2 | PDF | MOBI | TXT | RTF

* Конвертация файла может нарушить форматирование оригинала. По-возможности скачивайте файл в оригинальном формате.

Windows для профессионалов. Создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows. Издание четвёртое, 2004, Джеффри Рихтер

  • Название: Windows для профессионалов. Создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows
  • Категория: Книги / Программирование
  • Страниц: 749
  • Просмотров: 488

Читать журнал Windows для профессионалов. Создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows. Издание четвёртое, 2004, Джеффри Рихтер онлайн или скачать бесплатно с Яндекс Диска. Этот журнал и похожие на него журналы находятся в разделе сайта: Программирование, журналы. Свежий номер журнала Windows для профессионалов. Создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows. Издание четвёртое, 2004, Джеффри Рихтер, доступный для бесплатного чтения и скачивания, опубликован специально для вас. Вы долго искали почитать что-то интересное, и наконец, нашли. Обязательно прочитайте и скачайте онлайн журнал: Windows для профессионалов. Создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows. Издание четвёртое, 2004, Джеффри Рихтер из раздела: Программирование, , и не забудьте посмотреть другие журналы, ничуть не хуже этого. Все журналы публикуются на сайте только по вашим желаниям, специально для вас!

Читать журнал Windows для профессионалов. Создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows. Издание четвёртое, 2004, Джеффри Рихтер бесплатно — полная версия

Windows для профессионалов. Создание эффективных Win32-приложений с учетом специфики 64-разрядной версии Windows. Издание четвёртое, 2004, Джеффри Рихтер — описание и краткое содержание, читайте бесплатно онлайн на сайте all-journals.com

WinRT. Джеффри Рихтер, Мартен ван де Боспурт

Ознакомьтесь с Windows Runtime и изучите передовые методики разработки приложений из Магазина Windows. Авторы книги Джеффри Рихтер и Мартен ван де Боспурт, имеющие немалый опыт программирования в среде Windows и на платформе .NET Framework, помогут вам освоить основные понятия и принципы работы с Windows Runtime.

Форматы: fb2, txt, pdf, epub, mobi

В этой книге вы найдете немало полезных советов и практических рекомендаций по составлению структуры, разработке, оптимизации и отладке приложений из Магазина Windows.

Эта книга поможет вам:

  • Пользоваться прикладными программными интерфейсами WinRT API на C#
  • Усвоить основные принципы составления архитектуры приложений из Магазина Windows
  • Понять, каким образом осуществляется построение, развертывание и защита пакетов приложений из Магазина Windows
  • Разобраться, каким образом активизируются приложения и как модель процесса управляет их выполнением
  • Изучить расширенные возможности для работы с файлами и папками.
  • Понять особенности передачи, уплотнения и шифрования данных в потоках ввода-вывода
  • Научиться разрабатывать приложения, создающие впечатление будто они выполняются, используя живые плитки, фоновые задачи и разные виды фоновой передачи данных
  • Организовывать обмен данными между приложениями через буфер обмена или с помощью кнопки Share на панели инструментов Charms в Windows
  • Получить полезные советы, как зарабатывать на своих приложениях через Магазин Windows

Здесь можно скачать книгу «WinRT. Программирование на C# для профессионалов» для ознакомления (бесплатный PDF фрагмент от правообладателя), почитать онлайн или купить полную электронную версию в форматах FB2, PDF, EPUB, TXT, FB3, MOBI.

Понравилась статья? Поделить с друзьями:
  • Ресивер для геймпада xbox 360 драйвер скачать windows 10
  • Реклама в меню пуск windows 10
  • Рисунок учетной записи windows 7 размеры
  • Ресивер для xbox 360 джойстика драйвер windows 10
  • Реклама windows are you wanna be