ݺߣ

ݺߣShare a Scribd company logo
Урок 4. Создание 64-битной
конфигурации
Компилятор
Вначале следует убедиться, что используемая вами редакция Visual Studio позволяет собирать 64-
битный код. Если вы планируете разрабатывать 64-битные приложения с использованием
последней версии (на момент написания курса) Visual Studio 2008, то следующая таблица поможет
определить, какая из редакций Visual Studio вам необходима.




                Таблица 1 - Возможности различных редакций Visual Studio 2008

Если ваша редакция Visual Studio позволяет создавать 64-битный код, то следует проверить,
установлен ли 64-битный компилятор. На рисунке 1 показана страница устанавливаемых
компонентов Visual Studio 2008, где не выбрана установка 64-битного компилятора.
Рисунок 1 - При установке не выбран 64-битный компилятор


Создание 64-битной конфигурации
Создание 64-битной конфигурации проекта в Visual Studio 2005/2008 - достаточно простая
операция. Сложности будут подстерегать вас позже на этапе сборки новой конфигурации и поиска
в ней ошибок. Для создания 64-битной конфигурации достаточно выполнить следующие 4 шага:

Шаг 1
Запускаем менеджер конфигураций, как показано на рисунке 2:




                         Рисунок 2 - Запуск менеджера конфигураций

Шаг 2
В менеджере конфигураций выбираем поддержку новой платформы (рисунок 3):




                          Рисунок 3 - Создание новой конфигурации

Шаг 3
Выбираем 64-битную платформу (x64), а в качестве основы выбираем настройки от 32-битной
версии (рисунок 4). Те настройки, которые влияют на режим сборки, среда Visual Studio
скорректирует сама.
Рисунок 4 - Выбираем x64 в качестве платформы и берем за основу конфигурацию Win32

Шаг 4
Добавление новой конфигурации завершено, и мы можем выбрать 64-битный вариант
конфигурации и приступить к компиляции 64-битного приложения. Выбор 64-битной
конфигурации для сборки показан на рисунке 5.




              Рисунок 5 - Теперь доступна 32-битная и 64-битная конфигурация


Модификация параметров
Если вам повезет, то дополнительно заниматься настройкой 64-битного проекта необходимости
не будет. Но это сильно зависит от проекта, его сложности и количества используемых библиотек.
Единственное, что стоит сразу изменить, это размер стека. В случае если в вашем проекте
используется стек размером по умолчанию, то есть в 1 мегабайт, то есть смысл задать его
размером в 2-3 мегабайта для 64-битной версии. Это не обязательно, но лучше заранее
подстраховаться. Если у вас используется размер стека, отличный от размера по умолчанию, то
есть смысл сделать его для 64-битной версии в 2-3 раза больше. Для этого в настройках проекта
найдите и измените параметры Stack Reserve Size и Stack Commit Size (смотри рисунок 6).
Рисунок 6 - Расположение настроек проекта, задающих размер стека


Что дальше?
Создание 64-битной конфигурации проекта, не означает, что проект будет компилироваться или
тем более корректно работать. Процессом компиляции и обнаружением скрытых ошибок мы
займемся в следующих уроках.

Авторы курса: Андрей Карпов (karpov@viva64.com), Евгений Рыжков (evg@viva64.com).

Правообладателем курса "Уроки разработки 64-битных приложений на языке Си/Си++"
является ООО "Системы программной верификации". Компания занимается разработкой
программного обеспечения в области анализа исходного кода программ. Сайт компании:
http://www.viva64.com.

Контактная информация: e-mail: support@viva64.com, 300027, г. Тула, а/я 1800.

More Related Content

Similar to Урок 4. Создание 64-битной конфигурации (20)

Урок 6. Ошибки в 64-битном коде
Урок 6. Ошибки в 64-битном кодеУрок 6. Ошибки в 64-битном коде
Урок 6. Ошибки в 64-битном коде
Tatyanazaxarova
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Андрей Кухаренко
Забытые проблемы разработки 64-битных программ
Забытые проблемы разработки 64-битных программЗабытые проблемы разработки 64-битных программ
Забытые проблемы разработки 64-битных программ
Tatyanazaxarova
Особенности разработки 64-битных приложений
Особенности разработки 64-битных приложенийОсобенности разработки 64-битных приложений
Особенности разработки 64-битных приложений
Tatyanazaxarova
64 бита для Си++ программистов: от /Wp64 к Viva64
64 бита для Си++ программистов: от /Wp64 к Viva6464 бита для Си++ программистов: от /Wp64 к Viva64
64 бита для Си++ программистов: от /Wp64 к Viva64
Tatyanazaxarova
CodeFest 2013. Биллевич В. — SDK мобильного сервиса. Добавление новой функцио...
CodeFest 2013. Биллевич В. — SDK мобильного сервиса. Добавление новой функцио...CodeFest 2013. Биллевич В. — SDK мобильного сервиса. Добавление новой функцио...
CodeFest 2013. Биллевич В. — SDK мобильного сервиса. Добавление новой функцио...
CodeFest
Статический анализ кода для верификации 64-битных приложений
Статический анализ кода для верификации 64-битных приложенийСтатический анализ кода для верификации 64-битных приложений
Статический анализ кода для верификации 64-битных приложений
Tatyanazaxarova
Урок 8. Статический анализ для выявления 64-битных ошибок
Урок 8. Статический анализ для выявления 64-битных ошибокУрок 8. Статический анализ для выявления 64-битных ошибок
Урок 8. Статический анализ для выявления 64-битных ошибок
Tatyanazaxarova
Начало работы с Git (версия 2016)
Начало работы с Git (версия 2016)Начало работы с Git (версия 2016)
Начало работы с Git (версия 2016)
Андрей Кухаренко
Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++
Tatyanazaxarova
Pythonic way of using BTRFS features
Pythonic way of using BTRFS featuresPythonic way of using BTRFS features
Pythonic way of using BTRFS features
IT61
Установка и настройка Windows Virtual PC (XP Mode)
Установка и настройка Windows Virtual PC (XP Mode)Установка и настройка Windows Virtual PC (XP Mode)
Установка и настройка Windows Virtual PC (XP Mode)
uaseller.org
Облегчаем процесс разработки с помощью статического анализа кода: Наш опыт
Облегчаем процесс разработки с помощью статического анализа кода: Наш опытОблегчаем процесс разработки с помощью статического анализа кода: Наш опыт
Облегчаем процесс разработки с помощью статического анализа кода: Наш опыт
Andrey Karpov
Коллекция примеров 64-битных ошибок в реальных программах
Коллекция примеров 64-битных ошибок в реальных программахКоллекция примеров 64-битных ошибок в реальных программах
Коллекция примеров 64-битных ошибок в реальных программах
Tatyanazaxarova
10183
1018310183
10183
nreferat
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven development
Testableapple
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Andrey Karpov
Преимущества использования Viva64
Преимущества использования Viva64Преимущества использования Viva64
Преимущества использования Viva64
Tatyanazaxarova
Введение в тестирование с использованием закодированных автоматических тестов...
Введение в тестирование с использованием закодированных автоматических тестов...Введение в тестирование с использованием закодированных автоматических тестов...
Введение в тестирование с использованием закодированных автоматических тестов...
Александр Шамрай
Урок 6. Ошибки в 64-битном коде
Урок 6. Ошибки в 64-битном кодеУрок 6. Ошибки в 64-битном коде
Урок 6. Ошибки в 64-битном коде
Tatyanazaxarova
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Начало работы с Git (Visual Studio 2013, Bitbucket) - version 2013
Андрей Кухаренко
Забытые проблемы разработки 64-битных программ
Забытые проблемы разработки 64-битных программЗабытые проблемы разработки 64-битных программ
Забытые проблемы разработки 64-битных программ
Tatyanazaxarova
Особенности разработки 64-битных приложений
Особенности разработки 64-битных приложенийОсобенности разработки 64-битных приложений
Особенности разработки 64-битных приложений
Tatyanazaxarova
64 бита для Си++ программистов: от /Wp64 к Viva64
64 бита для Си++ программистов: от /Wp64 к Viva6464 бита для Си++ программистов: от /Wp64 к Viva64
64 бита для Си++ программистов: от /Wp64 к Viva64
Tatyanazaxarova
CodeFest 2013. Биллевич В. — SDK мобильного сервиса. Добавление новой функцио...
CodeFest 2013. Биллевич В. — SDK мобильного сервиса. Добавление новой функцио...CodeFest 2013. Биллевич В. — SDK мобильного сервиса. Добавление новой функцио...
CodeFest 2013. Биллевич В. — SDK мобильного сервиса. Добавление новой функцио...
CodeFest
Статический анализ кода для верификации 64-битных приложений
Статический анализ кода для верификации 64-битных приложенийСтатический анализ кода для верификации 64-битных приложений
Статический анализ кода для верификации 64-битных приложений
Tatyanazaxarova
Урок 8. Статический анализ для выявления 64-битных ошибок
Урок 8. Статический анализ для выявления 64-битных ошибокУрок 8. Статический анализ для выявления 64-битных ошибок
Урок 8. Статический анализ для выявления 64-битных ошибок
Tatyanazaxarova
Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++Разработка ресурсоемких приложений в среде Visual C++
Разработка ресурсоемких приложений в среде Visual C++
Tatyanazaxarova
Pythonic way of using BTRFS features
Pythonic way of using BTRFS featuresPythonic way of using BTRFS features
Pythonic way of using BTRFS features
IT61
Установка и настройка Windows Virtual PC (XP Mode)
Установка и настройка Windows Virtual PC (XP Mode)Установка и настройка Windows Virtual PC (XP Mode)
Установка и настройка Windows Virtual PC (XP Mode)
uaseller.org
Облегчаем процесс разработки с помощью статического анализа кода: Наш опыт
Облегчаем процесс разработки с помощью статического анализа кода: Наш опытОблегчаем процесс разработки с помощью статического анализа кода: Наш опыт
Облегчаем процесс разработки с помощью статического анализа кода: Наш опыт
Andrey Karpov
Коллекция примеров 64-битных ошибок в реальных программах
Коллекция примеров 64-битных ошибок в реальных программахКоллекция примеров 64-битных ошибок в реальных программах
Коллекция примеров 64-битных ошибок в реальных программах
Tatyanazaxarova
MockServer-driven development
MockServer-driven developmentMockServer-driven development
MockServer-driven development
Testableapple
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Andrey Karpov
Преимущества использования Viva64
Преимущества использования Viva64Преимущества использования Viva64
Преимущества использования Viva64
Tatyanazaxarova
Введение в тестирование с использованием закодированных автоматических тестов...
Введение в тестирование с использованием закодированных автоматических тестов...Введение в тестирование с использованием закодированных автоматических тестов...
Введение в тестирование с использованием закодированных автоматических тестов...
Александр Шамрай

More from Tatyanazaxarova (20)

Урок 26. Оптимизация 64-битных программ
Урок 26. Оптимизация 64-битных программУрок 26. Оптимизация 64-битных программ
Урок 26. Оптимизация 64-битных программ
Tatyanazaxarova
Урок 25. Практическое знакомство с паттернами 64-битных ошибок
Урок 25. Практическое знакомство с паттернами 64-битных ошибокУрок 25. Практическое знакомство с паттернами 64-битных ошибок
Урок 25. Практическое знакомство с паттернами 64-битных ошибок
Tatyanazaxarova
Урок 24. Фантомные ошибки
Урок 24. Фантомные ошибкиУрок 24. Фантомные ошибки
Урок 24. Фантомные ошибки
Tatyanazaxarova
Урок 23. Паттерн 15. Рост размеров структур
Урок 23. Паттерн 15. Рост размеров структурУрок 23. Паттерн 15. Рост размеров структур
Урок 23. Паттерн 15. Рост размеров структур
Tatyanazaxarova
Урок 21. Паттерн 13. Выравнивание данных
Урок 21. Паттерн 13. Выравнивание данныхУрок 21. Паттерн 13. Выравнивание данных
Урок 21. Паттерн 13. Выравнивание данных
Tatyanazaxarova
Урок 20. Паттерн 12. Исключения
Урок 20. Паттерн 12. ИсключенияУрок 20. Паттерн 12. Исключения
Урок 20. Паттерн 12. Исключения
Tatyanazaxarova
Урок 19. Паттерн 11. Сериализация и обмен данными
Урок 19. Паттерн 11. Сериализация и обмен даннымиУрок 19. Паттерн 11. Сериализация и обмен данными
Урок 19. Паттерн 11. Сериализация и обмен данными
Tatyanazaxarova
Урок 17. Паттерн 9. Смешанная арифметика
Урок 17. Паттерн 9. Смешанная арифметикаУрок 17. Паттерн 9. Смешанная арифметика
Урок 17. Паттерн 9. Смешанная арифметика
Tatyanazaxarova
Урок 16. Паттерн 8. Memsize-типы в объединениях
Урок 16. Паттерн 8. Memsize-типы в объединенияхУрок 16. Паттерн 8. Memsize-типы в объединениях
Урок 16. Паттерн 8. Memsize-типы в объединениях
Tatyanazaxarova
Урок 15. Паттерн 7. Упаковка указателей
Урок 15. Паттерн 7. Упаковка указателейУрок 15. Паттерн 7. Упаковка указателей
Урок 15. Паттерн 7. Упаковка указателей
Tatyanazaxarova
Урок 13. Паттерн 5. Адресная арифметика
Урок 13. Паттерн 5. Адресная арифметикаУрок 13. Паттерн 5. Адресная арифметика
Урок 13. Паттерн 5. Адресная арифметика
Tatyanazaxarova
Урок 11. Паттерн 3. Операции сдвига
Урок 11. Паттерн 3. Операции сдвигаУрок 11. Паттерн 3. Операции сдвига
Урок 11. Паттерн 3. Операции сдвига
Tatyanazaxarova
Урок 10. Паттерн 2. Функции с переменным количеством аргументов
Урок 10. Паттерн 2. Функции с переменным количеством аргументовУрок 10. Паттерн 2. Функции с переменным количеством аргументов
Урок 10. Паттерн 2. Функции с переменным количеством аргументов
Tatyanazaxarova
Урок 9. Паттерн 1. Магические числа
Урок 9. Паттерн 1. Магические числаУрок 9. Паттерн 1. Магические числа
Урок 9. Паттерн 1. Магические числа
Tatyanazaxarova
Урок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибокУрок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибок
Tatyanazaxarova
Урок 5. Сборка 64-битного приложения
Урок 5. Сборка 64-битного приложенияУрок 5. Сборка 64-битного приложения
Урок 5. Сборка 64-битного приложения
Tatyanazaxarova
PVS-Studio, решение для разработки современных ресурсоемких приложений
PVS-Studio, решение для разработки современных ресурсоемких приложенийPVS-Studio, решение для разработки современных ресурсоемких приложений
PVS-Studio, решение для разработки современных ресурсоемких приложений
Tatyanazaxarova
Статический анализ Си++ кода
Статический анализ Си++ кодаСтатический анализ Си++ кода
Статический анализ Си++ кода
Tatyanazaxarova
PVS-Studio
PVS-Studio PVS-Studio
PVS-Studio
Tatyanazaxarova
PVS-Studio научился следить за тем, как вы программируете
PVS-Studio научился следить за тем, как вы программируетеPVS-Studio научился следить за тем, как вы программируете
PVS-Studio научился следить за тем, как вы программируете
Tatyanazaxarova
Урок 26. Оптимизация 64-битных программ
Урок 26. Оптимизация 64-битных программУрок 26. Оптимизация 64-битных программ
Урок 26. Оптимизация 64-битных программ
Tatyanazaxarova
Урок 25. Практическое знакомство с паттернами 64-битных ошибок
Урок 25. Практическое знакомство с паттернами 64-битных ошибокУрок 25. Практическое знакомство с паттернами 64-битных ошибок
Урок 25. Практическое знакомство с паттернами 64-битных ошибок
Tatyanazaxarova
Урок 24. Фантомные ошибки
Урок 24. Фантомные ошибкиУрок 24. Фантомные ошибки
Урок 24. Фантомные ошибки
Tatyanazaxarova
Урок 23. Паттерн 15. Рост размеров структур
Урок 23. Паттерн 15. Рост размеров структурУрок 23. Паттерн 15. Рост размеров структур
Урок 23. Паттерн 15. Рост размеров структур
Tatyanazaxarova
Урок 21. Паттерн 13. Выравнивание данных
Урок 21. Паттерн 13. Выравнивание данныхУрок 21. Паттерн 13. Выравнивание данных
Урок 21. Паттерн 13. Выравнивание данных
Tatyanazaxarova
Урок 20. Паттерн 12. Исключения
Урок 20. Паттерн 12. ИсключенияУрок 20. Паттерн 12. Исключения
Урок 20. Паттерн 12. Исключения
Tatyanazaxarova
Урок 19. Паттерн 11. Сериализация и обмен данными
Урок 19. Паттерн 11. Сериализация и обмен даннымиУрок 19. Паттерн 11. Сериализация и обмен данными
Урок 19. Паттерн 11. Сериализация и обмен данными
Tatyanazaxarova
Урок 17. Паттерн 9. Смешанная арифметика
Урок 17. Паттерн 9. Смешанная арифметикаУрок 17. Паттерн 9. Смешанная арифметика
Урок 17. Паттерн 9. Смешанная арифметика
Tatyanazaxarova
Урок 16. Паттерн 8. Memsize-типы в объединениях
Урок 16. Паттерн 8. Memsize-типы в объединенияхУрок 16. Паттерн 8. Memsize-типы в объединениях
Урок 16. Паттерн 8. Memsize-типы в объединениях
Tatyanazaxarova
Урок 15. Паттерн 7. Упаковка указателей
Урок 15. Паттерн 7. Упаковка указателейУрок 15. Паттерн 7. Упаковка указателей
Урок 15. Паттерн 7. Упаковка указателей
Tatyanazaxarova
Урок 13. Паттерн 5. Адресная арифметика
Урок 13. Паттерн 5. Адресная арифметикаУрок 13. Паттерн 5. Адресная арифметика
Урок 13. Паттерн 5. Адресная арифметика
Tatyanazaxarova
Урок 11. Паттерн 3. Операции сдвига
Урок 11. Паттерн 3. Операции сдвигаУрок 11. Паттерн 3. Операции сдвига
Урок 11. Паттерн 3. Операции сдвига
Tatyanazaxarova
Урок 10. Паттерн 2. Функции с переменным количеством аргументов
Урок 10. Паттерн 2. Функции с переменным количеством аргументовУрок 10. Паттерн 2. Функции с переменным количеством аргументов
Урок 10. Паттерн 2. Функции с переменным количеством аргументов
Tatyanazaxarova
Урок 9. Паттерн 1. Магические числа
Урок 9. Паттерн 1. Магические числаУрок 9. Паттерн 1. Магические числа
Урок 9. Паттерн 1. Магические числа
Tatyanazaxarova
Урок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибокУрок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибок
Tatyanazaxarova
Урок 5. Сборка 64-битного приложения
Урок 5. Сборка 64-битного приложенияУрок 5. Сборка 64-битного приложения
Урок 5. Сборка 64-битного приложения
Tatyanazaxarova
PVS-Studio, решение для разработки современных ресурсоемких приложений
PVS-Studio, решение для разработки современных ресурсоемких приложенийPVS-Studio, решение для разработки современных ресурсоемких приложений
PVS-Studio, решение для разработки современных ресурсоемких приложений
Tatyanazaxarova
Статический анализ Си++ кода
Статический анализ Си++ кодаСтатический анализ Си++ кода
Статический анализ Си++ кода
Tatyanazaxarova
PVS-Studio научился следить за тем, как вы программируете
PVS-Studio научился следить за тем, как вы программируетеPVS-Studio научился следить за тем, как вы программируете
PVS-Studio научился следить за тем, как вы программируете
Tatyanazaxarova

Урок 4. Создание 64-битной конфигурации

  • 1. Урок 4. Создание 64-битной конфигурации Компилятор Вначале следует убедиться, что используемая вами редакция Visual Studio позволяет собирать 64- битный код. Если вы планируете разрабатывать 64-битные приложения с использованием последней версии (на момент написания курса) Visual Studio 2008, то следующая таблица поможет определить, какая из редакций Visual Studio вам необходима. Таблица 1 - Возможности различных редакций Visual Studio 2008 Если ваша редакция Visual Studio позволяет создавать 64-битный код, то следует проверить, установлен ли 64-битный компилятор. На рисунке 1 показана страница устанавливаемых компонентов Visual Studio 2008, где не выбрана установка 64-битного компилятора.
  • 2. Рисунок 1 - При установке не выбран 64-битный компилятор Создание 64-битной конфигурации Создание 64-битной конфигурации проекта в Visual Studio 2005/2008 - достаточно простая операция. Сложности будут подстерегать вас позже на этапе сборки новой конфигурации и поиска в ней ошибок. Для создания 64-битной конфигурации достаточно выполнить следующие 4 шага: Шаг 1 Запускаем менеджер конфигураций, как показано на рисунке 2: Рисунок 2 - Запуск менеджера конфигураций Шаг 2 В менеджере конфигураций выбираем поддержку новой платформы (рисунок 3): Рисунок 3 - Создание новой конфигурации Шаг 3 Выбираем 64-битную платформу (x64), а в качестве основы выбираем настройки от 32-битной версии (рисунок 4). Те настройки, которые влияют на режим сборки, среда Visual Studio скорректирует сама.
  • 3. Рисунок 4 - Выбираем x64 в качестве платформы и берем за основу конфигурацию Win32 Шаг 4 Добавление новой конфигурации завершено, и мы можем выбрать 64-битный вариант конфигурации и приступить к компиляции 64-битного приложения. Выбор 64-битной конфигурации для сборки показан на рисунке 5. Рисунок 5 - Теперь доступна 32-битная и 64-битная конфигурация Модификация параметров Если вам повезет, то дополнительно заниматься настройкой 64-битного проекта необходимости не будет. Но это сильно зависит от проекта, его сложности и количества используемых библиотек. Единственное, что стоит сразу изменить, это размер стека. В случае если в вашем проекте используется стек размером по умолчанию, то есть в 1 мегабайт, то есть смысл задать его размером в 2-3 мегабайта для 64-битной версии. Это не обязательно, но лучше заранее подстраховаться. Если у вас используется размер стека, отличный от размера по умолчанию, то есть смысл сделать его для 64-битной версии в 2-3 раза больше. Для этого в настройках проекта найдите и измените параметры Stack Reserve Size и Stack Commit Size (смотри рисунок 6).
  • 4. Рисунок 6 - Расположение настроек проекта, задающих размер стека Что дальше? Создание 64-битной конфигурации проекта, не означает, что проект будет компилироваться или тем более корректно работать. Процессом компиляции и обнаружением скрытых ошибок мы займемся в следующих уроках. Авторы курса: Андрей Карпов (karpov@viva64.com), Евгений Рыжков (evg@viva64.com). Правообладателем курса "Уроки разработки 64-битных приложений на языке Си/Си++" является ООО "Системы программной верификации". Компания занимается разработкой программного обеспечения в области анализа исходного кода программ. Сайт компании: http://www.viva64.com. Контактная информация: e-mail: support@viva64.com, 300027, г. Тула, а/я 1800.