одукт має спільну з Delphi бібліотеку класів, частина з яких написана на Object Pascal.
Однак сумісність C ++ Builder і Delphi цим не вичерпується. У проектах C ++ Builder можна використовувати не тільки бібліотеку компонентів Delphi, але і код, написаний на Object Pascal, а також форми і модулі Del-phi. Підтримується візуальне спадкування форм і модулів даних, у тому числі і створених в Delphi. Ці можливості з'явилися завдяки включенню в C ++ Builder обох компіляторів C ++ і Object Pascal.
Це означає, що можна створювати спільні проекти, використовуючи обидва засоби розробки - і C ++ BuiIder, і Delphi. Частини одного додатки можуть бути створені за допомогою двох засобів, і тепер до роботи над проектом можна залучати розробників, які використовують як Delphi, так і C ++. По-друге, і це дуже важливо, C ++ Builder може використовувати компоненти, створені для Delphi, а їх за останні кілька років створено величезну кількість. Це багатство, накопичене розробниками усього світу, сьогодні здатне задовольнити найхимерніші запроси.предоставляет програмісту широкі можливості повторного використання коду не тільки за рахунок наявності бібліотеки компонентів, але і за рахунок підтримки стандарту ActiveX, що дозволяє вбудовувати в додатки ActiveX-компоненти як сторонніх виробників, так і створені власноруч за допомогою самого Delphi
Важливим чинником, вл?? яющім на популярність цих продуктів, є їх відкритість, яка полягає в можливості створення з їх допомогою не тільки додаткових компонентів і елементів ActiveX, поліпшують функціональність додатку, але і різних експертів, редакторів властивостей компонентів, що поліпшують функціональність самого середовища розробки.
Слід зазначити, що ефективність розробки і налагодження додатків досягається не тільки за рахунок використання зручних засобів візуального проектування форм (зараз це не рідкість), але і за рахунок, по-перше, високої продуктивності самих компіляторів Borland і , по-друге, так званої инкрементной компіляції та компонування виконуваного модуля (коли перекомпіляції і перекомпонуванню піддаються тільки ті модулі, в які були внесені зміни).
2.3 Проектування системи криптографічного захисту
.3.1 Розробка структурної схеми програми
Програма умовно поділяється на блоки:
· Інтерфейс користувача;
· Шифрування файлів;
· Шифрування повідомлень;
· Розшифровка файлів;
· Розшифровка повідомлень.
Структурна схема програми представлена ??на малюнку 2.1.
Рис. 2.1 - Структурна схема програми
Для доступу до функцій програми буде використовуватися користувача меню. Пункти меню:
Повідомлення - шифрування/розшифрування повідомлень;
Вихід - завершення роботи з програмою.
Шифрування/розшифровка файлів винесені на головну форму програми.
2.3.2 Розробка моделі інформаційних потоків даних
Модель інформаційних потоків представлена ??на рис. 2.2.
Рис. 2.2 - Модель інформаційних потоків
2.3.3 Розробка алгоритмічного забезпечення
Вихідний код шифрування/розшифровки файлів.
procedure TForm1.Button1Click (Sender: TObject);
var: TDCP_rijndael ;: string ;, Dest: TFileStream;:= raquo ;; Button1.Caption= Зашифрувати then:=TFileStream.Create (Edit1.Text, fmOpenRead);:=TFileStream.Create (Edit2.Text, fmCreate);:=TDCP_rijndael.Create (Self) ;. Init (KeyStr, sizeof (KeyStr) * 8, nil) ;//ініціалізація.EncryptStream (Source, Dest, Source.Size);// Шіфруем.Burn; .Free; .Free; .Free; ( Файл успешно зашифрован , mtInformation, [mbOK], 0); ( Помилка вводу/виводу , mtError, [mbOK], 0); ;:=TFileStream.Create (Edit1.Text, fmOpenRead);:=TFileStream.Create (Edit2.Text, fmCreate);:=TDCP_rijndael.Create (Self) ;. Init (KeyStr, sizeof (KeyStr) * 8, nil) ;//ініціалізація.DecryptStream (Source, Dest, Source.Size);// Расшіфровиваем.Burn; .Free; .Free; .Free; ( Файл успішно розшифрований , mtInformation, [mbOK], 0); ( Помилка ввода/выводаraquo;,mtError,[mbOK],0);;;.Text:=laquo;raquo;;.Text:=laquo;raquo;;.Enabled:=False;;
Вихідний код шифрування повідомлення.
procedure TForm2.Button1Click (Sender: TObject);
var: HCRYPTHASH ;: HCRYPTKEY ;, DataLen: DWORD ;: S...