Наш ассоциированный член www.Bikinika.com.ua

Налагодження за допомогою Visual Studio

  1. Вступ
  2. NaCl32 і NaCl64
  3. NaClARM
  4. PNaCl
  5. Встановлення надбудови
  6. Встановити змінні середовища
  7. Завантажте надбудову
  8. Запустіть програму встановлення
  9. Спробуйте зразок проекту hello_world_gles
  10. Створюйте та запускайте проект
  11. Перевірте відладчик nacl-gdb
  12. Перевірте відладчик Visual Studio
  13. Розробка для Native Client в Visual Studio
  14. Вибір інструментарію
  15. Додавання бібліотек до проекту
  16. Запуск веб-сервера
  17. Запуск власного сервера
  18. Запуск сервера SDK
  19. Відстеження всіх фігур
  20. Використання відладчиків
  21. Вимкнути кешування Chrome
  22. Попередження про PostMessage

Якщо ви переносите існуючий проект або починаєте з нуля, надбудова Native Client Visual Studio спрощує налаштування, збирання, виконання та налагодження програми Native Client, інтегруючи засоби розробки Native Client SDK у середовище Visual Studio .

Вступ

Надбудова Native Client для Visual Studio допомагає розробляти вашу програму більш ефективно за допомогою багатьох способів:

  • Організуйте та підтримуйте свій код як проект Visual Studio.
  • Ітеративно пишіть і перевіряйте свою програму легше. Visual Studio обробляє деталі запуску веб-сервера, щоб обслуговувати ваш модуль і запускати модуль у Chrome за допомогою відладчика.
  • Скомпілюйте ваш модуль у динамічно пов'язану бібліотеку (DLL) за допомогою компілятора C / C ++ Visual Studio і запустіть його як плагін Pepper. Це дозволяє розробляти код поступово, кодувати та / або переносити одну функцію одночасно в API Pepper, продовжуючи користуватися власними Windows API, які в іншому випадку були б недоступними у фактичному модулі Native Client.
  • Використовуйте вбудований відладчик Visual Studio для налагодження коду, коли він працює як плагін Pepper.
  • Скомпілюйте ваш модуль у файл .nexe або .pexe за допомогою інструментів SDK Native Client і запустіть його як добросовісний модуль Native Client.
  • Використовуйте відладчик Native Client, nacl-gdb, щоб перевірити код, коли він працює як об'єкт Native Client.

Надбудова визначає п'ять нових платформ Visual Studio: PPAPI, NaCl32, NaCl64, NaClARM і PNaCl. Ці платформи можуть бути застосовані до налагоджувальної конфігурації рішень і проектів. Платформи налаштовують властивості вашого проекту, щоб його можна було побудувати і запустити як модуль Pepper або Native Client. Платформи також визначають поведінку, пов'язану з командою налагодження, щоб ви могли протестувати код під час роботи у Visual Studio.

Корисно розглянути платформи надбудови Visual Studio у двох групах. Один містить платформу PPAPI. Інша група, яку ми назвемо платформами Native Client, містить платформи, у яких у всіх назвах є "NaCl": NaCl32, NaCl64, NaClARM і PNaCl. Наведена нижче схема показує платформи, способи, якими вони зазвичай використовуються, та продукти, які вони виробляють.

Якщо ви переносите існуючий проект або починаєте з нуля, надбудова Native Client Visual Studio спрощує налаштування, збирання, виконання та налагодження програми Native Client, інтегруючи засоби розробки Native Client SDK у середовище Visual Studio

Використовуючи платформи, ваш робочий процес є більш швидким і ефективним. Ви можете компілювати, запускати та налагоджувати код одним клацанням або натисканням клавіші. Коли ви натискаєте клавішу F5, команда "start debugging", Visual Studio автоматично запускає веб-сервер, щоб обслуговувати ваш модуль (якщо необхідно), а також екземпляр Chrome, який запускає ваш модуль Native Client, а також додає відповідний відладчик.

Ви можете перемикатися між платформами під час роботи для порівняння поведінки вашого коду.

Коли ви запускаєте проект, Visual Studio запускає платформи PPAPI і Native Client різними способами, як описано в наступних розділах.

Платформа PPAPI створює ваш модуль як динамічну бібліотеку і запускає версію Chrome, налаштовану для запуску бібліотеки як плагіна, коли він стикається з елементом <embed> з type = application / x-nacl (ігноруючи інформацію в файлі маніфесту) . Під час роботи на платформі PPAPI можна використовувати системні виклики Windows, які недоступні в звичайному модулі Native Client, який будується і працює як файл .nexe. Це дає можливість поступово портувати існуючий код, перезаписуючи функції за допомогою інтерфейсів PPAPI за один раз. Оскільки модуль побудований за допомогою рідного компілятора Visual Studio (MSBuild), ви можете використовувати відладчик Visual Studio для контролю та перевірки коду.

Є чотири платформи Native Client. Всі вони можуть бути використані для побудови модулів Native Client. Коли ви запускаєте одну з платформ Native Client, Visual Studio створює відповідний тип модуля Native Client (або .nexe або .pexe), запускає веб-сервер, щоб його обслуговувати, і запускає копію Chrome, яка отримує модуль з і запускає його. Visual Studio також відкриє вікно терміналу, запустить екземпляр nacl-gdb і приєднає його до процесу вашого модуля, щоб ви могли використовувати команди gdb для налагодження.

NaCl32 і NaCl64

Платформи, названі NaCl32 і NaCl64, орієнтовані на x86 32-бітні і 64-розрядні системи відповідно. Для того, щоб створити повний набір файлів з розширенням .nexe, вам потрібно мати обидві платформи. Зауважте, однак, що під час тестування у Visual Studio необхідно вибрати платформу NaCl64 (оскільки Chrome для Windows запускає Native Client у 64-бітному процесі). Якщо ви спробуєте запустити з платформи NaCl32, ви отримаєте повідомлення про помилку.

NaClARM

Платформа NaClARM орієнтована на процесори на базі ARM. Ви можете створювати .nexe файли з платформою NaClARM у Visual Studio, але ви не можете запустити їх звідти. Ви можете скористатися Visual Studio для створення модуля Native Client, що містить файл .nexe на основі ARM, а потім запустити модуль у браузері Chrome на пристрої ARM, наприклад, одному з нових комп'ютерів Chromebook. Див. Інструкції на Запуск Native Client Applications докладніше про тестування модуля в Chrome.

PNaCl

Платформа PNaCl (портативний NaCl) включена до версії 1.1 або вище версії Visual Studio Native Client. Він підтримує формат файлу .pexe. Файл .pexe кодує вашу програму як бітовий код для віртуальної машини низького рівня (LLVM). Коли ви доставляєте програму Native Client як модуль PNaCl, файл маніфесту буде містити один файл .pexe, а не декілька файлів .nexe. Клієнт Chrome перетворює бітовий код LLVM у машинні інструкції для локальної системи.

Коли ви запускаєте платформу PNaCl з Visual Studio, Visual Studio використовує SDK Native Client для перетворення файлу .pexe в файл .nexe NaCl64 і запускає його так, ніби ви працюєте з платформою NaCl64.

Встановлення надбудови

Щоб використовувати надбудову Native Client Visual Studio, ваше середовище розробки має включати:

  • 64-розрядна версія Windows Vista або Windows 7.
  • Visual Studio 2012 або Visual Service 2010 з пакетом оновлень 1.
  • Chrome версії 23 або вище. Ви можете розробляти за допомогою останнього канарки побудувати Chrome, виконавши версію канарейки пліч-о-пліч з (і окремо від) звичайною версією Chrome.
  • SDK власного клієнта з пачкою pepper_23 або більше. Використовувана версія Chrome має бути рівною або більшою, ніж версія пакета SDK.

Встановити змінні середовища

Перед запуском інсталятора необхідно визначити дві змінні середовища Windows. Вони вказують на комплект у SDK Native Client, який ви використовуєте для створення модуля, і браузер Chrome, який ви вирішили використовувати для налагодження.

Щоб встановити змінні середовища в Windows 7, перейдіть до меню "Пуск" і знайдіть "середовище". Одне з посилань у результатах - "Змінити змінні середовища для вашого облікового запису". Облікові записи.) Натисніть посилання та використовуйте кнопки у вікні, щоб створити або змінити ці користувацькі змінні (наведені нижче значення лише для прикладу):

Назва змінної Опис NACL_SDK_ROOT Шлях до каталогу переходу в SDK. Наприклад: C: nacl_sdk pepper_23 CHROME_PATH Шлях до файлу .exe для версії Chrome, з якою ви тестуєте. Наприклад: C: Користувачі fred AppData Місцеві Google Chrome SxS Додаток chrome.exe

Завантажте надбудову

Надбудова нативного клієнта Visual Studio є окремим пакетом у SDK під назвою vs_addin. Відкрийте вікно командного рядка, перейдіть до каталогу SDK верхнього рівня та запустіть команду оновлення, вказавши пакет розширення:

naclsdk оновлення vs_addin

Це створює папку з ім'ям vs_addin, що містить саму надбудову, файли інсталятора та каталог прикладів.

Запустіть програму встановлення

Сценарій інсталятора знаходиться в папці vs_addin у SDK. Клацніть правою кнопкою миші на файлі install.bat і запустіть його як адміністратор.

Сценарій завжди встановлює платформи NativeClient і запитує, чи хочете ви також встановити платформу PPAPI. Ви можете пропустити крок PPAPI і знову запустити інсталятор, щоб додати платформу PPAPI.

Зазвичай можна успішно запустити інсталятор без аргументів. Нові платформи встановлені в C: Програмні файли (x86) MSBuild Microsoft.Cpp v4.0 Платформи.

У деяких випадках системні ресурси можуть не перебувати у місцях за замовчуванням. Можливо, вам знадобиться використовувати ці аргументи командного рядка під час запуску install.bat:

  • Папка MSBuild вважається C: Програмні файли (x86) MSBuild. Ви можете вказати альтернативний шлях з прапором --ms-build-path = <шлях>. Інсталятор припускає, що Visual Studio створив папку користувача на
  • Сам додаток зазвичай встановлюється у% USERPROFILE% My Documents Visual Studio 2012 (або 2010 для Visual Studio 2010). Ви можете вказати альтернативні шляхи за допомогою прапора --vsuser-path = <path>.

Час від часу оновлення додатку Visual Studio може стати доступним. Оновлення виконуються так само, як і установка. Завантажте нову надбудову за допомогою оновлення naclsdk і запустіть install.bat як адміністратор.

Щоб видалити надбудову, запустіть install.bat як адміністратор і додайте прапорець --uninstall. Щоб додати прапор, потрібно запустити програму "Командний рядок" як адміністратор. Перейдіть до меню "Пуск" Windows, знайдіть "Командний рядок", клацніть правою кнопкою миші на програмі та запустіть її як адміністратор.

Ви можете переконатися, що надбудова інстальована та визначити її версію, вибравши диспетчер надбудов у меню інструментів Visual Studio. Якщо надбудова була встановлена, вона з'явиться у списку доступних надбудов. Виберіть її і прочитайте її опис.

Спробуйте зразок проекту hello_world_gles

Надбудова постачається з каталогом прикладів. Відкрийте зразки прикладів проекту hello_world_gles hello_world_gles.sln. Цей проект - програма, яка відображає прядильний куб.

Відкрийте зразок проекту в Visual Studio, виберіть Configuration Manager і підтвердьте, що активна конфігурація рішення - це Debug, а активна платформа проекту - NaCl64. Зауважте, що платформа для проекту hello_world_gles також є NaCl64. (Ви можете перейти до Configuration Manager з меню Build або у вікні властивостей проекту.)

Створюйте та запускайте проект

Використовуйте команду налагодження (F5) для створення та запуску проекту. Коли колеса починають повертатися, вам може бути надано один або більше сповіщень. Вони доброякісні; Ви можете прийняти їх і встановити параметри, щоб ігнорувати їх, коли це можливо. Деякі з повідомлень, які ви можете побачити, включають:

  • "Цей проект застарів, ви б хотіли його побудувати?"
  • "Будь ласка, вкажіть ім'я виконуваного файлу, який буде використовуватися для сеансу налагодження." Це має бути значення змінної середовища CHROME_PATH, яке зазвичай подається як значення за замовчуванням у діалоговому вікні.
  • "Відомості про налагодження для chrome.exe не можуть бути знайдені." Це слід очікувати, ви налагоджуєте код вашого модуля, а не Chrome.
  • “Відкрити файл - попередження безпеки. Видавця не вдалося перевірити. Якщо Visual Studio скаржиться на x86_64-nacl-gdb.exe, це наш налагоджувач. Нехай так буде.

Після того як ви переходите ці перешкоди, програма почне працювати, і ви побачите активність у трьох місцях:

  1. Відкриється вікно терміналу, що запускається, nacl-gdb.
  2. Chrome запускає ваш модуль у вкладці.
  3. Вікно виводу Visual Studio відображає повідомлення про налагодження, коли ви вибираєте елемент виведення відладки. Зупиніть сеанс налагодження, закривши вікно Chrome, або виберіть команду зупинки налагодження в меню налагодження. Вікно nacl-gdb закриється, коли ви припините роботу програми.

Перевірте відладчик nacl-gdb

Додайте точку зупинки на виклику SwapBuffers у функції MainLoop, яка знаходиться у hello_world.cc.

cc

Знову запустіть відладчик (F5). На цей раз існуюча точка зупинки завантажується в nacl-gcb і програма призупиняється. Введіть c, щоб продовжити роботу. Команди gdb можна використовувати для встановлення більшої кількості точок зупинки та кроку до програми. Докладніше див Налагодження з nacl-gdb (прокрутіть вниз до кінця розділу, щоб побачити деякі часто використовувані команди gdb).

Перевірте відладчик Visual Studio

Якщо ви встановили платформу PPAPI, поверніться до Configuration Manager і виберіть платформу PPAPI. На цей раз, коли Chrome запускає вікно nacl-gdb, він не з'явиться; відладчик Visual Studio повністю задіяний і на роботі.

На цьому етапі може бути корисним подивитися на властивості, які пов'язані з платформами PPAPI і Native Client - див. Приклади в налаштуваннях зразкового проекту.

Розробка для Native Client в Visual Studio

Після встановлення надбудови та випробування зразка проекту, ви готові почати роботу з власним кодом. Ви можете повторно використовувати зразок проекту і платформи PPAPI і Native Client, які він вже має, замінивши вихідний код на свій. Швидше за все, ви додасте платформи до існуючого проекту або до нового проекту, який ви створюєте з нуля.

Щоб додати платформи Native Client і PPAPI до проекту, виконайте такі дії:

  1. Відкрийте диспетчер конфігурацій.
  2. У рядку, що відповідає вашому проекту, натисніть спливаюче меню колонки Платформа і виберіть <Нове ...>.
  3. Виберіть PPAPI, NaCl32, NaCl64 або PNaCl з меню Нова платформа.
  4. У більшості випадків у меню "Копіювати налаштування з" слід вибрати <Empty>. Ніколи не копіюйте параметри між платформами "PPAPI", "NaCl32", "NaCl64", "NaClARM" або "PNaCl" . Ви можете скопіювати параметри з платформи Win32, якщо така існує, але потім переконайтеся, що властивості проекту належним чином встановлені для нової платформи, як зазначено в кроці 6 нижче.
  5. Якщо хочете, перевірте вікно «Створити платформу для нових рішень», щоб створити платформу для рішення на додаток до проектної платформи. (Це необов'язково, але це може бути зручно, оскільки дозволяє перемикати платформи проекту з головного вікна Visual Studio, вибравши платформу рішення, що має однакову назву.)
  6. Перегляньте властивості проекту для нової доданої платформи. У більшості випадків властивості за замовчуванням для кожної платформи повинні бути правильними, але вони платять перевірити. Будьте особливо обережні щодо користувальницьких властивостей, які ви могли заздалегідь встановити, або скопіювати з платформи Win32. Також перевірте правильність типу конфігурації:
    • Динамічна бібліотека для PPAPI
    • Застосування (.pexe) для PNaCl
    • Застосування (.nexe) для NaCl32, NaCl64 і NaClARM

Вибір інструментарію

При побудові модуля Native Client безпосередньо з SDK можна використовувати два різних інструментальних ланцюжка, newlib або glibc. Подивитися Динамічне зв'язування та завантаження з glibc для опису двох інструментів і інструкцій щодо створення та розгортання програми з glibc toolchain. На платформах Native Client ви можете обрати один і той же набір інструментів. Ви можете вказати, який набір інструментів використовувати у властивостях проекту, у розділі Властивості конфігурації> Загальні> Native Client> Toolchain.

Для платформи PPAPI немає властивості інструментальних ланцюжків. Платформа PPAPI використовує інструментарій і бібліотеки, які постачаються з Visual Studio.

Додавання бібліотек до проекту

Якщо у вашому застосунку Native Client потрібні бібліотеки, які не входять до складу SDK, ви повинні додати їх до властивостей проекту (у розділі Властивості конфігурації> Linker> Input> Additional Dependencies), як і будь-який інший проект Visual Studio. Цей список залежностей є списком з роздільниками з комою. На платформі PPAPI імена бібліотек включають розширення .lib (наприклад, ppapi_cpp.lib; ppapi.lib). На платформах Native Client розширення виключено (наприклад, ppapi_cpp; ppapi).

Запуск веб-сервера

Для того, щоб надбудова Visual Studio перевіряла ваш модуль Native Client, ви повинні обслуговувати модуль з веб-сервера. Є два варіанти:

Запуск власного сервера

Під час запуску налагоджувального запуску Visual Studio запускає Chrome і намагається підключитися до веб-сервера за адресою, знайденою в аргументах команди Chrome (див. Властивість налагодження проекту> Командна конфігурація), яка зазвичай є localhost: $ (NaClWebServerPort). Якщо ви використовуєте свій власний сервер, обов'язково вкажіть його адресу у властивості команди arguments і підтвердьте, що ваш сервер працює перед запуском сеансу налагодження. Також переконайтеся, що сервер має всі файли, необхідні для доставки модуля Native Client (див. «Відстеження всіх частин» нижче).

Запуск сервера SDK

Якщо на вказаному порту не працює веб-сервер, Visual Studio спробує запустити простий веб-сервер Python, який постачається разом з SDK власного клієнта. Він шукає копію сервера в самому SDK (у% NACL_SDK_ROOT% httpd.py) і в каталозі проекту ($ (ProjectDir) /httpd.py). Якщо сервер існує в одному з цих місць, Visual Studio запускає сервер. Вихід сервера з'являється у вікні виводу Visual Studio, на панелі під назвою «Вихідний веб-сервер нативного клієнта». Сервер, запущений таким чином, припиняється, коли сеанс налагодження закінчується.

Відстеження всіх фігур

Незалежно від того, де живе веб-сервер або як він запущений, необхідно переконатися, що він має всі файли, які потрібні вашій програмі:

  • Всі програми Native Client повинні мати html хост-сторінка . Цей файл зазвичай називається index.html. Сторінка хосту повинна мати вбудований тег з атрибутом типу, встановленим на application-type / x-nacl. Якщо ви плануєте використовувати платформу Native Client, вбудований тег повинен також включати атрибут src, який вказує на файл маніфесту Native Client (.mnf).
  • Якщо ви використовуєте платформу Native Client, ви повинні включити дійсну файл маніфесту . Файл маніфесту вказує на файли .pexe або .nexe, які створює Visual Studio. Вони будуть розміщені в каталозі, вказаному в властивості проекту General> Output Directory, що зазвичай є $ (ProjectDir) $ (ToolchainName). Visual Studio може скористатися сценарієм SDK нативного клієнта create_nmf.py для автоматичного створення файлу маніфесту. Щоб скористатися цим сценарієм, налаштуйте властивість проекту Linker> General> Create NMF Automatically на "yes".

Якщо ви дозволяєте Visual Studio виявляти та запускати сервер SDK, ці файли слід розмістити в каталозі проекту. Якщо ви працюєте з власним сервером, ви повинні бути впевнені, що хост-сторінка index.html поміщена в кореневий каталог вашого сервера. Пам'ятайте, що якщо ви використовуєте одну з платформ Native Client, то шляхи для файлу маніфесту та файлів .pexe або .nexe повинні бути доступними з сервера.

Структура файлу маніфесту може бути більш складною, якщо ваша програма використовує здатність Native Client динамічно зв'язувати бібліотеки. Можливо, вам доведеться додати додаткову інформацію про динамічно пов'язані бібліотеки до файлу маніфесту, навіть якщо ви створили його автоматично. Використання та обмеження інструменту create_nmf пояснюються в Створення файлу маніфесту власного клієнта для динамічно пов'язаної програми .

Ви можете переглянути приклади проектів у SDK, щоб дізнатися, як організовані файли індексу та маніфесту. Приклад проекту hello_nacl має підкаталог, який також називається hello_nacl. Ця папка містить index.html і hello_nacl.nmf. Файл nexe міститься в NaCl64 \ t Приклад проекту hello_world_gles містить підкаталог hello_world_gles`. Цей каталог містить HTML-файли, створені з обох інструментів (index_glibc.html і index_newlib.html). Файли .nexe і .nmf знаходяться в підпапках newlib і glibc. Додаткову інформацію про частини програми Native Client див Структура програми .

Використання відладчиків

Додатки PPAPI спочатку створюються компілятором Visual Studio (MSBuild) і працюють з відладчиком Visual Studio звичайним способом. Ви можете встановити контрольні точки у файлах вихідного коду Visual Studio перед початком налагодження та під час виконання програми.

Виконувані файли NaCl32 і NaClARM (файли .nexe) не можуть бути запущені або налагоджені з Visual Studio.

Виконувані файли NaCl64 (файли .nexe) компілюються з використанням одного з наборів інструментів Native Client в SDK, які створюють ELF-форматування виконуваний файл. Для налагодження запущеного .nexe необхідно використовувати nacl-gdb, який є відладчиком командного рядка, який не інтегрований безпосередньо з Visual Studio. Коли ви починаєте сеанс налагодження з платформи NaCl64, Visual Studio автоматично запускає для вас nacl-gdb і прикріплює його до Nexe. Точки зупинки, які ви встановили у Visual Studio перед початком налагодження, автоматично переносяться до nacl-gdb. Під час сеансу налагодження NaCl можна використовувати тільки команди nacl-gdb.

Платформа PNaCl генерує файл .pexe. При запуску налагоджувача надбудова перетворює файл .pexe у файл .nexe і запускає отриманий двійковий файл з nacl-gdb.

Додаткову інформацію про nacl-gdb див Налагодження з nacl-gdb (прокрутіть вниз до кінця розділу, щоб побачити деякі часто використовувані команди gdb).

Зверніть увагу, що ви не можете використовувати команду Почати без налагодження (Ctrl + F5) з проектом у конфігурації Debug. Якщо ви це зробите, Chrome зависає, оскільки платформа Debug запускає Chrome за допомогою аргументу --wait-for-debugger-children (у PPAPI) або --enable-nacl-debug (на платформі Native Client). Ці прапори спричиняють паузу Chrome і чекають на додавання відладчика. Якщо ви користуєтеся командою "Почати без налагодження", відладчик не підключається, і Chrome просто чекає. Щоб скористатися функцією "Почати без налагодження", перейдіть до конфігурації Release або вручну видаліть аргумент, що порушує, з властивості Command Arguments.

Вимкнути кешування Chrome

Коли ви налагоджуєте платформу Native Client, ви можете це зробити вимкнути кеш Chrome щоб переконатися, що ви тестуєте свій останній і найбільший код.

Попередження про PostMessage

Деякі бібліотеки Windows визначають символ PostMessage як PostMessageW. Це може викликати хаос, якщо ви працюєте з платформою PPAPI, і ви використовуєте виклик Pepper PostMessage () у вашому модулі. Деякі файли заголовка API Pepper містять самооборону, яка може знадобитися вам самостійно, під час тестування на платформі PPAPI. Ось:

// Якщо Windows визначає PostMessage, скасуйте його. #ifdef PostMessage #undef PostMessage #endif

У Google I / O 2012 ми продемонстрували, як портувати настільну програму Windows до Native Client за 60 хвилин. The відео можна переглядати на YouTube. Папка vs_addin / examples містить пару простих прикладів, які демонструють процес перенесення. Вони призначені для завершення всього за 5 хвилин. Два приклади називаються hello_nacl і hello_nacl_cpp. Вони по суті однакові, але перший використовує інтерфейс C PPAPI, а другий використовує C ++ API. Додаток є знайомим "Привіт, Світ".

Кожен приклад починається з версії робочого столу Windows, що працює на платформі Win32. Звідти ви переходите до платформи PPAPI, де ви виконуєте ряд кроків для налаштування рамки Native Client, використовуйте її для запуску версії настільного комп'ютера, а потім портуйте поведінку від викликів Windows до інтерфейсу PPAPI. Ви закінчуєте програму, яка не використовує жодних функцій Windows, які можуть працювати або в PPAPI, або в платформі NaCl64.

Приклади проектів використовують один вихідний файл (hello_nacl.c або hello_nacl_cpp.cpp). Кожен етап процесу перенесення здійснюється шляхом поступового визначення символів STEP1-STEP6 у джерелі. Вбудовані коментарі пояснюють, як кожен послідовний крок змінює код. Перегляньте приклад коду, щоб дізнатися, як це зроблено. Ось короткий опис процесу:

STEP1 Запустіть настільну програму Почніть з запуску оригінальної програми Windows на платформі Win32. STEP2 Запустіть Chrome з порожнім модулем Native Client Перейдіть до платформи PPAPI і включіть код, необхідний для ініціалізації екземпляра Native Module. Код є оголеним, він не робить нічого, крім ініціалізації модуля. Цей крок ілюструє, як Visual Studio обробляє всі деталі запуску веб-сервера та Chrome, а також запускає модуль Native Client як плагін Pepper. STEP3 Запустіть програму настільного комп'ютера синхронно з модуля Native Client Native Client створює вікно безпосередньо, а потім викликає WndProc для запуску настільного програми. Оскільки WndProc обертається у своєму циклі повідомлень, виклик для ініціалізації модуля ніколи не повертається. Закрийте вікно Hello World і завершиться ініціалізація модуля. STEP4 Запуск програми для настільного комп'ютера та асинхронного Native Client У WndProc замінити цикл повідомлення функцією зворотного виклику. Тепер вікно програми та модуль Native Client працюють одночасно. STEP5 Перенаправлення виводу на веб-сторінку Код модуля ініціалізації викликає initInstanceInBrowserWindow, а не initInstanceInPCWindow. WndProc більше не використовується. Замість цього, postMessage викликається для розміщення тексту (тепер "Привіт, Native Client") на веб-сторінці, а не відкриття та запису у вікно. Як тільки ви досягнете цього кроку, ви можете почати переносити фрагменти програми однією функцією одночасно. STEP6 Видалення всіх кодів Windows Всі коди Windows def'd out, доводячи, що ми сумісні з PPAPI. Працюючий функціональний код такий же, як і STEP5. Запустіть модуль Native Client на платформі NaCl64 Ви все ще використовуєте код STEP6, але як модуль Native Client, а не плагін Pepper.

Новости