C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 2 - Обработка ошибок / MCI / Visual C++

Шаг 2 - Обработка ошибок

Как уже было сказано, функции MCI возвращают код ошибки при неудачном их выполнении. И тутже возникает вопрос: "а куда, собственно, девать этот код?". Здесь нам на помощь приходит другая функция - mciGetErrorString(), которая по коду ошибки выводит ее текстовое описание. Вот как она выглядит:

BOOL mciGetErrorString(DWORD fdwError,
	LPTSTR lpszErrorText,
	UINT cchErrorText)

где:

  • fdwError - код ошибки, полученный от одной из функций
  • lpszErrorText - указатель на буфер, который будет хранить описание ошибки
  • cchErrorText - указывает размер lpszErrorText буфера в символах

Как и большинство функций, она тоже возвращает результат своей деятельности. Если она вернула TRUE, то можно расслабиться и посмотреть, что же натворила функция находящаяся перед ней. Иначе (FALSE) придется поднопрячь извилины, потому что наша функция не смогла определить причину возникновения ошибки.

Давайте рассмотрим конкретный пример, где все встанет на свои места.

#include "stdafx.h"
#include <mmsystem.h>

void main()
{
	const int cchErrorText = 128;
	char lpszErrorText[cchErrorText];
	DWORD fdwError = mciSendString("play c:\\windows\\tada.wav wait", NULL, 0, NULL);
	if (fdwError)
	{
		BOOL dummy = mciGetErrorString(fdwError, lpszErrorText, cchErrorText);
		if (dummy)
			printf("%s\n", lpszErrorText);
		else
			printf("напряги извилины :-)");
	}
}

Я специально указал неверный путь до файла, чтобы сработала наша функция. Все очень просто...правда?


| |
Автор Владимир Потапов.
[AD]