Приміткаnbsp; Ця технічна Примітка був написаний для Windows 3.1. Windows &NT реалізує більшість з цих функцій. Якщо ваша заявка під Windows 3.1 (з Win32s DLL), ці методи можуть допомогти в налагодження. Windows 95 також реалізує і розширює можливості надійності, покласти на місце під час Windows 3.1. Debug версією Windows 95, є кращий спосіб забезпечити вашу заявку працює чисто.
Windows 3.1, основні поліпшення над Windows 3.0 в області розробки надійних додатків. Windows 3.1 включає в себе цілий ряд нових функцій, що підвищення надійності Windows застосування. Це технічні записці описується використання цих особливостей MFC бібліотека.
Ці функції включають налагодження ядра, СТРОГИЙ типу перевірки, діагностики та керування пам'яттю та в WINDOWSX.H додаткові можливості.
Windows 3.1 налагодження ядра
Примітка Цей розділ застосовується лише до Microsoft Visual C++ Версія 1.5.
Тестування з виконуваних файлів системи налагодження заявку MFC, мабуть, найкраще, що ви можете зробити, щоб переконатися, що ваші програми надійний і надійний. Налагодження версії системи виконуваних файлів виконання будь-яких помилок корисна для вас, інформування вас про будь-яких проблем, які виникають з налагодження висновок повідомлення.
Кращий спосіб використання налагодження системи, з двох машин: машина для тестування та налагодження, що має інстальовано систему налагодження і машина для розвитку. Одна машина, ваша машина випробування, слід завжди запускати з налагодження ядра. Інші машини, ваша машина розвитку, повинні працювати з non налагодження ядра. Вихід з налагодження ядра можуть бути відправлені до основна машина нуль-модемного лінія. Якщо у вас є тільки одна машина, то ви повинні бути запустіть налагодження ядра (відбувається деградація невелике продуктивності). Вихід з налагодження ядра може бути перенаправлено на DBWIN, інструмент, що входить до складу Microsoft Visual C++ Версія 1.5. Крім того, вікно Visual c + + вихідний отримаєте виводу, коли запущено налагоджувач.
Корисні трюк для налагодження сингл машина є місце копії системи і налагодження двійкові файли та символи у окремий каталог і мати пакетних файлів, що скопіювати потрібні файли до каталогу системи Windows. Таким чином, ви можете завершити роботу Windows і вперед і назад швидко переключатися між налагодження і non налагодження. Програма установки Visual C++ Версія 1.5 буде відповідне настроювання, а потім ви можете перемикатися між налагодження і non налагоджування версії Windows з у D2N.BAT і N2D.BAT пакетних файлів.
Якщо ви не працює налагоджувач або налагодження термінал, слід запускати застосування DBWIN так що ви можете бачити помилки і попередження виробництва налагодження системи. Ця програма входить до складу Visual C++ Версія 1.5.
Нижче наведено деякі поширені помилки програмування, які з'являються часто в відвантажені додатків Windows. Багато хто з цих проблем може призвести до випадкового система UAEs та інші проблеми під Windows 3.0. Налагодження системних двійкових файлів допоможе Вам відслідковувати проблеми, такі як:
MFC діагностики
Крім того, Microsoft Базисні класи судно з набором функцій надійності, які складено і пов'язані тільки в налагоджувати побудувати бібліотеки (ці бібліотеки варіанти, закінчуючи мав '). Використання цих засобів у програмах, писати і класах, ви дизайн значно поліпшити як виконавчі файли, так і часу компіляції помилка трепінг вашої заявки. Ці функції, описані нижче, але всі описані у інструкції з Класу бібліотеки посилання.
Кожен клас, отриманих від CObject у MFC реалізує звалища функції-члена, який дозволяє вам переглядати стан об'єктів у форматі ASCII. Ця функція може бути з налагоджувач або поміщені в #ifdef _DEBUG /#endif частини вашого коду. Допоміжні функції AfxDump включено в бібліотеці налагодження для цієї мети. Це називається з одного параметра, CObject *. Цю функцію можна викликати з налагоджувача роздрукувати аргумент. Необхідно надати членом звалища для класів, які реалізувати. Як і у випадку з AssertValid, спочатку явно Телефонуйте ваш базовий клас звалища функції-члена. Вихід звалища направляється на стандартний MFC CDumpContext, afxDump, який за замовчуванням йде вікно виводу зневаджувач, або ваш налагодження терміналу. Можна також використовувати DBWIN програми, для перегляду виході з afxDump. Вихідний файл MFC\SRC\DUMPINIT.CPP включає в себе інформацію про те, як маршрут afxDump до іншого призначення.
TRACE, макрос, який веде себе набагато як printf, тільки Маршрути вихідного розташування afxDump . Ви повинні використовувати дій для позначення складно або виключною місць у вашому коді. Як з іншими функціями надійності ТРАСУВАННЯ має сенс тільки в бібліотеці налагодження та не діє у створенні роздрібної торгівлі. MFC бібліотека містить ряд, побудований в ТРАСУВАННЯ заяви для відстеження потоку повідомлень. Будь ласка, див технічне Примітка 7 додаткові відомості про налагодження трасування.
НАДБАННЯ є під час перевірки на дійсність заяву. Ви повинні використовувати НАДБАННЯs Ліберально по всій програмі. Будь-якому місці, що у вас є коментарі про те:
/ / lpStr повинні бути NULL на даний момент
ви повинні замінити що під час надбання:
ASSERT(lpStr == Null)
Компілятор не можуть зрозуміти коментар, але його можна обчислити вираз в макросі твердження. Заяви НАДБАННЯ мають ніякого ефекту в продається будує. Якщо потрібні відомості від НАДБАННЯ у створенні роздрібної торгівлі, потім використовувати ПЕРЕВІРКА макросу.
MFC також включає в себе великий діагностики пам'яті-розподільника. Використання діагностики пам'яті розподільника перевірити, що ви вільно всі ресурси пам'яті під час певних функцій програми. Діагностичний розподільника буде відслідковувати вихідного файлу та лінії кількість пам'яті, так що якщо ви використовуєте CMemoryState::DumpAllObjectsSince API, ви можете знайти будь-який розподіли, які залишаються.
За промовчанням MFC буде скинути всі об'єкти, що не Звільнившись від вашої програми (якщо є) перед виходи вашої програми. Можна переглянути цей висновок біг заявку під налагоджувач.
Windows 3.1 СУВОРОГО тип перевірки
СТРОГИЙ типу перевірки є опція доступна з WINDOWS.H заголовка файлу. За замовчуванням використовується цими типами СТРОГИЙ MFC, і слід використовувати, якщо ви будуєте MFC програми. MFC більше не підтримує створення програми без СТРОГИЙ defintions.
Typesafe зв'язок і СУВОРІ
У C++ дозволено вам мають багато функцій з тією ж назвою, до тих пір, поки ці функцій мають різні формальні параметр списки. Щоб мати унікальну посилання символи, компілятором C++ буде "прикрасити" ці імена, використовуючи алгоритм, що кодує інформацію про такі функції, як ім'я, номер і тип формальними показниками, закликаючи конвенції т. д.
Це нові згенеровані ім'я використовується як символ зовнішні посилання для функції. Це відомо як typesafe зв'язок і великі посібники C++. Ця назва прикраса застосовуються функції в межах блоку "С" зовнішній, і тому всі API у WINDOWS.H мають такі блока.
СТРОГИЙ тип перевірки у WINDOWS.H підвищує тип безпеки для програми Windows за допомогою різних типів представляти різні РУЧКИ у Windows. Так, наприклад, СТРОГИЙ запобігає помилково проходження HPEN режим, очікуючи на HBITMAP.
Так як Windows API, все в межах блоки {} зовнішній "С", вони не представлені в порядку, описаному вище. СТРОГИЙ змінює видів різних typedefs Windows, щоб зробити їх унікальні (зокрема він використовує вказівник різних типів для представлення обробкиs, який не може бути вільно перетворено без явного ролях).
Як ви можете бачити, якщо у вас є СТРОГИЙ типу перевірки, включений в один файл, але не в іншому, компілятором C++ буде генерувати символи різних зовнішні посилання для одну функцію. У результаті буде посилання помилок. Тому, рекомендується використовувати СТРОГИЙ типу перевірки лише для c модулів, (ті, які закінчуються на.C). Крім того, СТРОГИЙ є під час лише варіант, так що як тільки ви успішно скласти свій код, переваги СТРОГИЙ повністю зрозумів.
Якщо ви є змішування СТРОГИЙ і non-СТРОГИЙ код, ви повинні бути інформовані про зв'язок невідповідностей. Загалом, всі MFC програмування і всі C++ повинно бути зроблено з СТРОГИЙ. Якщо у вас є успадкованого коду на C, не використовуючи СТРОГИЙ є прийнятним.
Windows 3.1 WINDOWSX.H заголовка файлу
Новий Windows 3.1 і Win32 це на WINDOWSX.H заголовка файлу, який підтримує різні розширення стиль C-кодування для програмістів Windows за допомогою c. Ці макрос API, крекери повідомлення та керування API для, визначені у файлі WINDOWSX.H.
Цей синтаксис призначені c програмістів. MFC підтримує використання WINDOWSX.H, так що якщо у вас є існуючого коду, що спирається на ці tensions, використовуйте цей код, незміненій у MFC. Ви знайдете, однак, що MFC є порівнянними ідіоми для всіх функцій WINDOWSX.H і використовує C++ мови для виконання цих завдань з більше семантичними та архітектурні безпеки.
Використання WINDOWSX.H, не забудьте # включити його, перш ніж ви включили AFXWIN.H (або STDAFX.Ч, якщо ви використовуєте AppWizard структури).
Єдине обмеження в тому, що існують дві WINDOWSX.H APIs, які стикаються з MFC C++ API. Два API для SubclassWindow і CopyRgn недоступні для використання в рамках MFC. Вам буде потрібно, перекодувати їх використання будь-якого MFC API (і класів) або виклику Windows API безпосередньо. Ви можете також коду власний макрос, оскільки він має інше ім'я.
Технічні примітки за номером |nbsp; Технічні примітки за категоріями