:: Меню ::

Головна
  • Про сайт
  • Введення
  • Середовище програмування VB .NET: Visual Studio .NET
  • Вирази, оператори і передача управління
  • Класи і об'єкти
  •  Спадкоємство і інтерфейси
  • Обробка подій і делегати
  • Обробка помилок в VB .NET
  • Форми Windows, графічний вивід і друк
  • Уведення-виведення
  •  Багатопотокові застосування
  • Підтримка баз-даних в VB .NET
  • Короткий огляд ASP .NET
  • Складки .NET, установка додатків і COM Interop
  • Книга для гостей
    Контакти
    Добавити у вибране

    :: Друзі ::

     
     

    :: Лічильники ::

    = =

     

     

     

     

    Побудова ключів

    При програмуванні в .NET ключі (відкритий і закритий) зазвичай створюються утилітою sn.exe, що входить в .NET SDK (скорочення «sn» означає «Strong name», тобто «сильне ім'я»).

    Ключі зберігаються в двійкових файлах. Команда побудови ключів має наступний синтаксис:

    sn -k <імя_файла>

    Файлам має бути привласнене розширення .snk. У нашому прикладі пари ключів була створена командою

    sn -k c:\keys\pair.snk

    Файл .snk можна згенерувати і в VS .NET IDE (команда Strong Name в діалоговому вікні Project Properties), але більшість програмістів вважають за краще створювати ключі в окремому процесі з максимальним рівнем захисту. Файл .snk має бути захищений від несанкціонованого доступу; якщо закритий ключ стане відомий стороннім, путтю від нього буде небагато.

    Сертифікація збірки

    За наявності пари ключів у вигляді файлу .snk можна сертифікувати збірку закритим ключем. При цьому .NET включає відкритий ключ в маніфест збірки [ Точніше кажучи, в маніфест включається хешированная версія ключа, яка в .NET називається зразком (token) відкритого ключа. Ймовірно, хешування застосовується для економії місця, хоча нам здається, що в маніфесті слід було б просто опублікувати відкритий ключ. ] і обчислює хэш-код всіх даних збірки по закритому ключу. Результат теж включається в маніфест. За цими даними інші складки, що використовують ваш код, зможуть переконатися в тому, що збірка не піддалася сторонньому втручанню. Для цього відкритий ключ застосовується до зашифрованого хэш-коду, а результат порівнюється з приведеним в маніфесті.

    Щоб сертифікувати збірку, включите в програму атрибут Assemblykeyfile-attribute з ім'ям файлу .snk після всіх команд імпортування або ж скористайтеся вкладкою Sharing діалогового вікна Project Settings. Приклад:

    Imports System.Reflection

    <Assembly:assemblykeyfi1eattribute("c:\keys\pai r. snk")> \

    Багато компаній не надають своїм працівникам доступу до закритого ключа, тому в .NET була передбачена можливість відкласти сертифікацію збірки (за додатковою інформацією звертайтеся до документації).

    COM Interop і виклики функцій DLL

    Не дивлячись на появу .NET, існуючий код на базі СОМ ще не збирається вмирати. На щастя, рівень взаємодії з СОМ в .NET працює дуже добре. З іншого боку, використання СОМ в проектах .NET знижує швидкодію і утрудняє супровід програм, тому ці технології об'єднуються лише при крайній необхідності.

    У Visual Studio .NET взаємодія з СОМ майже не вимагає зусиль з боку програміста. Просто виберіть потрібний об'єкт СОМ на вкладці СОМ діалогового вікна посилань, і з ним можна буде працювати як з класом .NET. Для цього IDE читає бібліотеку типів СОМ і створює для об'єкту допоміжний клас («обгортку») .NET. Відкритими членами цього класу є всі відкриті члени об'єкту СОМ. До речі, технологія Intellisense працює і для екземплярів цих класів.

    Класи об'єктів СОМ також створюються утилітою tlbimp.exe, що входить ст. NET SDK. Зокрема, ця утиліта зручна при одночасній побудові декількох «обгорток» для використання в майбутньому.

    Виклики функцій DLL

    Хоча при виклику функцій DLL можна використовувати старий синтаксис Declare, в .NET рекомендується використовувати інший спосіб — атрибут Oil Import, що дозволяє створювати загальні точки входу. Для цього в програмі визначається порожня функція, співпадаюча по сигнатурі з функцією, що викликається. Нижче приведений приклад використання атрибуту Dll Import.

    Imports System.Drawing

    Imports System.Runtime.InteropServices

    Module Modulel

    ' Імпортувати функцію CREATEDC з Win32 API

    <Dll Import("gdi32.dll")>

    Public Function CREATEDC(Byval strdhver _

    As String. Byval strdevicename As String,_

    Byval stroutput As String. Byval nulldevice As Integer _ )

    As 'Intptr

    End Function

    Sub Main()

    ' Створити прямокутник

    Dim rctwindow As Rectangle = New Rectangle(100, 100, 200, 200)

    Dim penblack As Pen = New Perucolor.Black)

    penblack.Brush = Brushes.DarkKham

    Dim grfx As Graphics

    Dim hdc As Intptr = CREATEDC("DISPLAY". vbnullstring

    vbnullstring. vbnullstring)

    grfx = Graphics.FromHdc(hdc)

    Do While (True)

    grfx.FillRectangle(penblack.Brush, rctwindow)

    System.Threading.Thread.Sleep(0)

    Loop

    End Sub

    End Module

    Інша принципова відмінність атрибуту Dll Import від ключового слова Declare полягає в тому, що Dll Import дозволяє краще управляти окремими аспектами виклику. Зокрема, при виклику функції можна вказати конвенцію передачі параметрів, і кодування для передачі строкових параметрів.

     




    :: Наша кнопка ::

    Отримати код:

    Підтримайте наш сайт і розмістіть нашу кнопку на своєму ресурсі.


    :: Реклама ::

    Скачати безкоштовно програму Microsoft Front Page 2003


    :: Посилання ::

    -


     

     

     


    Copyright ©