Статьи по Assembler


Инструкция программиста mycall - часть 2


  • укажите команду компиляции: ml.exe /c /coff /nologo $(InputPath) (предполагается, что ваш MS Developer Studio готов для работы с ассемблером)
  • укажите в качестве выходного файла: .\$(InputName).obj
  • Измените установки проекта для сборщика (Settings/Link):
    • удалите из списка подключаемых библиотек все, кроме kernel32.lib и user32.lib
    • добавьте в список rasapi32.lib
    • отключите библиотеки по умолчанию (флажок "Ignore all default libraries")
    • установите в качестве точки входа функцию WinMain (поле "Entry-point symbol" в категории "Output")
    • Выполните построение проекта

      По завершении работы компилятора в папке Release проекта вы обнаружите файл mycall.exe. Поместите его вместе с файлом mycall.txt в папку для приложения MyCall, отредактируйте файл mycall.txt так, как указано в документации mycall.htm - и можете пользоваться.

      Возможно, вас удивит, что размер полученного вами файла mycall.exe в реализации на C++ несколько больше, чем размер того, который опубликован на assembler.ru. Это потому, что опубликованный файл компилировался с оптимизацией по размеру, а полученый вами - с оптимизацией по времени выполнения. Измените соответствующую установку (Settings/C++/Optimization) - и все встанет на свои места.

      программные решения

      Приложение MyCall представляет собой диалоговое окно с тремя выпадающими списками и одной кнопкой. С помощью списков пользователь имеет возможность выбрать устанавливаемое соединение, и для него - телефон дозвона и логин. Кнопкой пользователь может переводить приложение в режим дозвона и обратно в режим выбора соединения. В режиме дозвона в окне приложения появляется строка статуса, в которой отображается текущее состояние соединения.

       

      Положенные в основу MyCall идеи базируются на поставленной главной цели: разработать полноценное приложение win32, достаточно компактное, чтобы быть доступным для анализа, и в то же время достаточно объемное, чтобы продемонстрировать отличия его реализаций на C++ и на ассемблере.




      - Начало -  - Назад -  - Вперед -