Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π“Ρ€Π°Ρ„ΠΈΠΊΠ° для Windows срСдствами DirectDrawΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 10

Автор Бтэн Π’Ρ€ΡƒΡ…ΠΈΠ»ΡŒΠΎ

β€’ ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒΡΡ Π½Π° MSDN (Microsoft Development Network).

Если Ρƒ вас Π΅ΡΡ‚ΡŒ Visual C++, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΈ SDK. Π₯отя это Π½Π΅ самая послСдняя вСрсия, Π΅Π΅ Π²ΠΏΠΎΠ»Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² ΠΈΠ· этой ΠΊΠ½ΠΈΠ³ΠΈ.

SDK Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π° Web-ΡƒΠ·Π»Π΅ Microsoft (адрСс Π΅ΡΡ‚ΡŒ Π² прСдисловии). ОбъСм пСрСсылки оказываСтся довольно большим (ΠΈΠ·-Π·Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ-ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²), поэтому ΠΏΡ€ΠΈΠ³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ΡΡŒ ΠΏΠΎΡΠ²ΡΡ‚ΠΈΡ‚ΡŒ этому Π·Π°Π½ΡΡ‚ΠΈΡŽ Ρ†Π΅Π»ΡƒΡŽ Π½ΠΎΡ‡ΡŒ, особСнно ΠΏΡ€ΠΈ ΠΌΠΎΠ΄Π΅ΠΌΠ½ΠΎΠΌ соСдинСнии.

Π’Ρ€Π΅Ρ‚ΠΈΠΉ способ Π²ΠΏΠΎΠ»Π½Π΅ Ρ…ΠΎΡ€ΠΎΡˆ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΊΠΎΠ΅-ΠΊΡ‚ΠΎ считаСт Π½Π΅Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ Microsoft Π·Π° ΠΏΡ€Π°Π²ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, отчасти ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΄Π²ΠΈΠΆΠ΅Π½ΠΈΡŽ ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм. SDK Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² MSDN уровня 2 ΠΈ Π²Ρ‹ΡˆΠ΅. 

Visual C++ 

ПослС установки SDK Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ Visual C++ ΠΎ Π΅Π³ΠΎ мСстонахоТдСнии. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ SDK инсталлируСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΈΠΌΠ΅Π½Π΅ΠΌ dxsdk/sdk. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ dxsdk/sdk/inc, Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ β€” Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ dxsdk/sdk/lib.

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° способа ΡƒΠ²Π΅Π΄ΠΎΠΌΠΈΡ‚ΡŒ Visual C++ ΠΎ мСстонахоТдСнии SDK. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈΠ±ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΏΡ€ΠΈ использовании Ρ„Π°ΠΉΠ»ΠΎΠ², Π»ΠΈΠ±ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ Π² ΠΏΡƒΡ‚ΡŒ поиска Visual C++. Π–Π΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄, для Ρ‡Π΅Π³ΠΎ примСняСтся Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Tools | Options | Directories. На рис. 1.1 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ выглядит это Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ послС добавлСния ΠΏΡƒΡ‚ΠΈ ΠΊ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Ρƒ с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. 

Рис. 1.1. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Visual C++ с ΠΏΠ΅Ρ€Π΅Ρ‡Π½Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² 


Π’Π°ΠΌ Ρ‚Π°ΠΊΠΆΠ΅ придСтся Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π² список ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ dxsdk/sdk/lib. Π­Ρ‚ΠΎ дСлаСтся практичСски Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ с ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ dxsdk/sdk/inc.

На рисункС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ DirectX Π±Ρ‹Π» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΎΠΊ Β­ ΠΈ Π‡ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² Π½Π°Ρ‡Π°Π»ΠΎ списка, Π½Π°Π΄ стандартными ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌΠΈ Visual C++. Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ссли ΠΎΡ‚ вСрсии DirectX SDK, входящСй Π² Visual C++, Π²Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅Ρ‚Π΅ ΠΊ Π±ΠΎΠ»Π΅Π΅ свСТСй. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ старая вСрсия (Visual C++ просматриваСт ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΈΠ· списка свСрху Π²Π½ΠΈΠ·).

ПослС выполнСния всСх описанных дСйствий Π²Ρ‹ смоТСтС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ DirectX. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΡΡ‚Π°Π»Π°ΡΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Π§Ρ‚ΠΎΠ±Ρ‹ Π² DirectX 2 SDK Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΠ»Π° ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ QueryInterface() для GUID интСрфСйсов DirectX, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ константу INITGUID. Π­Ρ‚ΠΎΡ‚ символ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌ исходном Ρ„Π°ΠΉΠ»Π΅, ΠΈ ΠΏΡ€ΠΈΡ‚ΠΎΠΌ Π΄ΠΎ самой ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ #include, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅:

#define INITGUID

#include <ddraw.h>

// ... ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ include ...

Π’ DirectX 3 ΠΈ Π²Ρ‹ΡˆΠ΅ этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Ρ‚ΠΎΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΎΠ΄Π½Π°ΠΊΠΎ появляСтся ΠΈ Π±ΠΎΠ»Π΅Π΅ элСгантноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ символ INITGUID, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ„Π°ΠΉΠ» dxguid.lib (Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Build | Settings). 

Windows NT ΠΈ Windows 95 

Π­Ρ‚Π° ΠΊΠ½ΠΈΠ³Π° посвящСна Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ DirectDraw для Windows NT ΠΈ Windows 95. ΠŸΡ€ΠΈΡΡ‚ΡƒΠΏΠ°Ρ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ дСмонстрационными ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, я Π·Π°Ρ€Π°Π½Π΅Π΅ приготовился ΠΊ Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΌ ΠΌΠ΅Π»ΠΊΠΈΠΌ отличиям ΠΈ проявлСниям нСсовмСстимости. ΠŸΡ€ΠΈΠ·Π½Π°ΡŽΡΡŒ, я Π±Ρ‹Π» приятно ΡƒΠ΄ΠΈΠ²Π»Π΅Π½.

И всС ΠΆΠ΅ отличия ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, особСнно Π² части Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠΎΠ². Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Windows NT Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΡ‹ сСмСйства Mode X. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π»ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΡ‹ установлСнной Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ΠΎΠΉ, функция EnumDisplayModes() Π½Π΅ сообщаСт ΠΎ Π½ΠΈΡ…, Π° функция SetDisplayMode() Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ….

Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, Windows 95 позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°, Π° Windows NT β€” Π½Π΅Ρ‚. Π’ Windows 95 список Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠΎΠ², ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… DirectDraw, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ возмоТности ΠΊΠ°ΠΊ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Ρ‹, Ρ‚Π°ΠΊ ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°. Если Ρ€Π΅ΠΆΠΈΠΌ поддСрТиваСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ΠΎΠΉ, Π½ΠΎ Π½Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠΌ, DirectDraw Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² список. Однако Π² Windows NT ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° Π½Π΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ; ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, DirectDraw Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ список всСх Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ΠΎΠΉ, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ Π»ΠΈ ΠΎΠ½ΠΈ установлСнным ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΎΠΌ.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΊ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Π² прилоТСниях DirectDraw слСдуСт ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΎΡΡ‚ΠΎΡ€ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ. Π’ коммСрчСских прилоТСниях Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ страховки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹ позволял ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΠ° Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола ΠΈ Π² Windows NT, ΠΈ Π² Windows 95. Когда Π²Ρ‹ ΠΏΡ€ΠΈΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ Windows ΡΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌ, Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ активизируСтся Π½Π° 15 ΡΠ΅ΠΊΡƒΠ½Π΄, послС Ρ‡Π΅Π³ΠΎ восстанавливаСтся ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ. Π—Π°Ρ‚Π΅ΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π»ΠΈ систСма Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

ВСроятно, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ страховку стоит Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ Π² коммСрчСскиС прилоТСния для Windows 95 β€” вСдь Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° Π±Ρ‹Π»ΠΈ Π·Π°Π΄Π°Π½Ρ‹ Π²Π΅Ρ€Π½ΠΎ. ΠŸΡ€ΠΈ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΌ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° Π² Windows 95 ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ. 

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅  

Наш интСнсивный ΠΊΡ€Π°Ρ‚ΠΊΠΈΠΉ курс DirectDraw ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΊΠΎΠ½Ρ†Ρƒ. Π’ Π³Π»Π°Π²Π΅ 2 ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΆΠ΄Π΅Ρ‚ DirectDraw Π² блиТайшСм Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

Π“Π»Π°Π²Π° 2. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ быстродСйствия                 

БыстродСйствиС Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ ΠΈΠ· ΠΌΠΎΠ΄Ρ‹. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ максимальноС быстродСйствиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π΅Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Об этом Π·Π½Π°ΡŽΡ‚ всС программисты, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ Π°Ρ€ΠΊΠ°Π΄Π½Ρ‹Ρ… ΠΈΠ³Ρ€. Π˜Ρ… ΠΈΠ³Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ быстро, ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ»ΠΎΡ…ΠΎ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‚ΡŒΡΡ. Π‘ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Π³ΠΎΠ΄ΠΎΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠΈ ΠΆΠ΅Π»Π°ΡŽΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ всС Π±ΠΎΠ»Π΅Π΅ высокоС быстродСйствиС. КаТдая новая ΠΈΠ³Ρ€Π°-бСстсСллСр устанавливаСт Π½ΠΎΠ²Ρ‹Π΅ стандарты ΠΈ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΠ»Π°Π½ΠΊΡƒ Π΅Ρ‰Π΅ Π²Ρ‹ΡˆΠ΅ β€” нСсомнСнно, Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ эта тСндСнция Ρ‚ΠΎΠ»ΡŒΠΊΠΎ усилится.

Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Π½Π° Π°Ρ€ΠΊΠ°Π΄Π½Ρ‹Ρ… ΠΈΠ³Ρ€Π°Ρ… (ΠΈ ΠΈΠ³Ρ€Π°Ρ… Π²ΠΎΠΎΠ±Ρ‰Π΅) свСт ΠΊΠ»ΠΈΠ½ΠΎΠΌ Π½Π΅ сошСлся. Π‘ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ БАПР, графичСских Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΈΠΌΠΈΡ‚Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² мСньшСй стСпСни ΠΎΠ·Π°Π±ΠΎΡ‡Π΅Π½Ρ‹ вопросами ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ быстродСйствия, Ρ‡Π΅ΠΌ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Π΅ программисты. Но всС эти прилоТСния Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ достаточно быстро. Никому Π½Π΅ нравится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΆΠ΅Π»Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ события Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ происходили сразу ΠΆΠ΅, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· нСсколько сСкунд. Π’ΠΏΠΎΠ»Π½Π΅ достойный, Π½ΠΎ ΠΏΠ»ΠΎΡ…ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΉ Π±ΠΎΡ€ΡŒΠ±Π΅.

НС стоит ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, знакомясь с Π½ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ сСбС: Β«ΠŸΡƒΡΡ‚ΡŒ эта ΡˆΡ‚ΡƒΠΊΠΎΠ²ΠΈΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ побыстрСС, Π° Π½Π΅ то…» БыстродСйствиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‡Π°Ρ‰Π΅ оцСниваСтся Π½Π° ΠΏΠΎΠ΄ΡΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Π Π°Π±ΠΎΡ‚Π° с быстрой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Π½Π° всС ваши ТСлания, доставляСт Ρ€Π°Π΄ΠΎΡΡ‚ΡŒ. Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ быстродСйствиС всСляСт Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ дальшС. ΠœΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ лишь ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°ΡŽΡ‚ нашС Ρ‚Π΅Ρ€ΠΏΠ΅Π½ΠΈΠ΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ, ΠΊΠΎΠΌΡƒ приходится Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ, ΠΌΠ΅Ρ‡Ρ‚Π°ΡŽΡ‚ поскорСС Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ΡŒ свои мучСния. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ любая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (тСкстовый ΠΈΠ»ΠΈ графичСский Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΈΠ³Ρ€Π° ΠΈΠ»ΠΈ любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅) быстро ΠΈ Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½ΠΎ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π»Π° Π½Π° ΠΈΡ… дСйствия.

Π’ этой Π³Π»Π°Π²Π΅ Ρ€Π΅Ρ‡ΡŒ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… практичСских аспСктах быстродСйствия, знакомство с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ свои ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ рассмотрим ΠΎΠ±Ρ‰ΠΈΠ΅ вопросы быстродСйствия, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ, спСцифичным для DirectDraw.

Врадиционная оптимизация

ЭкспСрты ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ написали ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ‚ΠΎΠΌΠ° Π½Π° эту Ρ‚Π΅ΠΌΡƒ. Из ΠΈΡ… исслСдований ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΡƒΡŽ свои Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π° минимальноС врСмя. Π’ этой Π³Π»Π°Π²Π΅ такая оптимизация Π½Π΅ рассматриваСтся β€” эта Ρ‚Π΅ΠΌΠ° слишком ΠΎΠ±ΡˆΠΈΡ€Π½Π°, ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ Π²Ρ‹, скорСС всСго, ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ с Π΅Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ концСпциями.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ· Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ваТнСйший ΡƒΡ€ΠΎΠΊ: усилия, Π·Π°Ρ‚Ρ€Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΎΠΊΡƒΠΏΠ°ΡŽΡ‚ΡΡ лишь Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… частях ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. НС стоит напрасно Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° возню с ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ выполняСмым ΠΊΠΎΠ΄ΠΎΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ оптимизация ΠΊΠΎΠ΄Π° Π² Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΈ часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… функциях оказываСтся ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠΉ.

НС стоит просто ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ части вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ вскрытия Ρ€Π°ΡΡΡ‚Π°Π²ΡŒΡ‚Π΅ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Ρ‹ Π² ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΈ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»Π΅Ρ€ΠΎΠΌ Visual C++. Π˜Π·Π΄Π΅Π²Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²Π° Π½Π°Π΄ Π½Π΅Π²ΠΈΠ½Π½Ρ‹ΠΌΠΈ функциями Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π΅Π΄ΡƒΡ‚ ΠΊ напрасным Π·Π°Ρ‚Ρ€Π°Ρ‚Π°ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½ΠΎ ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ°ΡŽΡ‚ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ внСсСния Π½ΠΎΠ²Ρ‹Ρ… ошибок.

Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ C++ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ C?

ΠœΡ‹ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ Π΄Π΅Π»ΠΈΠΊΠ°Ρ‚Π½ΠΎΠΉ Ρ‚Π΅ΠΌΠ΅. Π—Π°Ρ‰ΠΈΡ‚Π½ΠΈΠΊΠΈ C Π΄Ρ€ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ своСго любимого языка. АдСпты C++ Ρ‚ΠΎΠΆΠ΅ настроСны вСсьма воинствСнно. К соТалСнию, ΠΏΡ€Π΅Π΄Π°Π½Π½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ оборачиваСтся Π½Π΅Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ Ρ„Π°Π½Π°Ρ‚ΠΈΠ·ΠΌΠΎΠΌ.

Π―Π·Ρ‹ΠΊ C извСстСн своСй ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒΡŽ. ИмСнно поэтому ΠΎΠ½ стал ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ языком высокого уровня, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±Ρ‹Π»Π° написана опСрационная систСма (Unix). И всС ΠΆΠ΅ ΠΏΠΎ скорости C уступаСт ассСмблСру. Он создавался ΠΊΠ°ΠΊ высокоуровнСвая Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° Ρ‚ΠΎΠΉ Ρ‡Ρ€Π΅Π·ΠΌΠ΅Ρ€Π½ΠΎΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ связано ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ассСмблСрС.

C++ Π±Ρ‹Π» создан для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠ³Π°Ρ‚ΠΈΡ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ язык C ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ возмоТностями ΠΈ ΠΏΡ€ΠΈ этом Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прСимущСствами Π΅Π³ΠΎ скорости. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΉ Π±Ρ‹Π»ΠΎ нСсколько, Π½ΠΎ основным ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ стало появлСниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΈΠ»ΠΈ классов. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ C++ назывался C with classes.