- •Анотація
- •1 Аналіз індивідуального завдання
- •2 Загальна структура програми
- •3 Розробка меню
- •4 Підключення панелі інструментів та рядку стану
- •4.1 Створення панелі інструментів
- •4.2 Створення рядку стану
- •5 Створення діалогових вікон
- •5.1 Основні етапи створення діалогу
- •5.2 Створення діалогу для введення змінних
- •6 Математичне обчислення
- •6.1 Мова assembler під Win32
- •6.2 Реалізація
- •7 Створення та підключення бібліотеки dll
- •8 Робота з файлами
- •8.1 Відкриття файлу
- •8.2 Збереження файлу
- •9 Керівництво системного програміста
- •10 Керівництво оператора
- •Висновки
- •Література
- •Додатки Додаток а
- •Додаток б
1 Аналіз індивідуального завдання
Дана програма повинна складатись с двох файлів: головного завантажувального файлу типу *.exe та файлу динамічної бібліотеки *.dll. що має знаходитись в тому ж самому каталозі, що й програма. Програма повинна видавати інформацію про розробника, забезпечувати введення в діалоговому режимі вхідних даних з клавіатури, виведення результату роботи програми, виконувати стандартні операції з файлами: Open, Save. Файл *.dll повинен містити функцію, котра написана мовою. Динамічна бібліотека повинна отримувати з основної програми необхідні їй дані, а саме коефіцієнти a, b,c та x; виконувати необхідне завдання та передавати результат назад у програму типу *.exe.
Для того, щоб можна було керувати процесами, що виконуються проектом, всі необхідні операції мають бути відображені в головному меню, панелі інструментів. Введення самих даних повинно відбуватись у діалоговому вікні. По натисненню кнопки Run має відбутись обмін даними с динамічною бібліотекою та обчислення функції. Стандартна операція з файлами Open повинна відкривати текстовий файл у окремому вікні. Якщо в цьому текстовому файлі містяться вхідні дані для розрахунків, то програма повинна оперувати з ними. Операція Save зберігає числовий результат у файлі. При натисненні ж на кнопку Exit програма повинна завершити своє виконання.
2 Загальна структура програми
Курсова робота складається з двох проектів, що створені за допомогою пакету програм Microsoft Visual Studio 2008. Перший проект використовується для створення DLL бібліотеки. Він складається з безпосередньо самого файлу з текстом програми – asmdll.dll, файлів проекту, що автоматично створюються середовищем та файлу asmdll..def в якому вказується ім'я бібліотеки що створюється, та ім'я функції що експортується, яка прописується відповідно синтаксису calc @1 з вказанням номеру функції (@1).
Мінімальна MFC-програма містить два класи, які визначаються користувачем. Перший клас СMyApp, призначений для створення глобального об’єкта класу прикладних програм. Базовий клас CWinApp має всього два методи: конструктор і функцію ініціалізації InitInstance().
З самого початку слід підключити до програми бібліотеку MFC:
#include <afxwin.h>;
Далі створюється клас додатку:
class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};
Потім йде ініціалізація додатку:
BOOL CMyApp::InitInstance()
{
…
};
При чому в цій перевизначуваній MFC-функції процес починається зі створення об’єкту фрейму вікна:
CMyFrameWin *pMainWnd=new CMyFrameWin;
Далі дане вікно встановлюється головним вікном даної програми:
m_pMainWnd=pMainWnd;
Після чого дане вікно слід зробити видимим, що робиться за допомогою функції:
m_pMainWnd->ShowWindow(m_nCmdShow);
Далі потрібно прописати функцію, що буде посилати вікну повідомлення про необхідність його прорисовки:
m_pMainWnd->UpdateWindow();
І останнім слід прописати стрічку, що створює об’єкт додатку:
CMyApp app;
Після створення цього додатку програма починає виконуватись.
В якості префікса, який позначає ім’я класу, використовується заглавна буква С від слова class, за який йде ім’я класу.
Для членів класу прийнятий такий спосіб утворення імен: обов’язковий префікс m_ (від слів class member), за яким йде префікс, який характеризує тип даних, а потім йде власне ім’я змінної, наприклад m_pMainWnd, де р – префікс покажчика. Для найменування змінних, які не є членами будь-якого класу, префікс m_ не використовується.
Кожна MFC-програма буде практично завжди містити хоча б один клас, похідний від бібліотечного віконного класу[1].
Саме вікно створюється в конструкторі класу CMyFrameWin за допомогою функції Create(), що містить початкові параметри вікна:
Create(NULL,"Курсова робота",
WS_OVERLAPPEDWINDOW,rectDefault,NULL,
MAKEINTRESOURCE(IDR_MAINFRAME));
В програмі також вказані наступні стрічки:
BEGIN_MESSAGE_MAP(CMyFrameWin, CFrameWnd)
END_MESSAGE_MAP();
Ці стрічки створюють чергу повідомлень головного вікна, визначають таблицю відкликів головного вікна додатку на повідомлення.
