<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Программирование на языке MFC &#187; Метод Abort</title>
	<atom:link href="http://www.programmfc.ru/tag/%d0%bc%d0%b5%d1%82%d0%be%d0%b4-abort/feed" rel="self" type="application/rss+xml" />
	<link>http://www.programmfc.ru</link>
	<description>Мой второй блог в серии программирования</description>
	<lastBuildDate>Mon, 08 Feb 2010 19:34:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Метод Abort</title>
		<link>http://www.programmfc.ru/uncategorized/%d0%bc%d0%b5%d1%82%d0%be%d0%b4-abort-2.html</link>
		<comments>http://www.programmfc.ru/uncategorized/%d0%bc%d0%b5%d1%82%d0%be%d0%b4-abort-2.html#comments</comments>
		<pubDate>Mon, 08 Feb 2010 19:31:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Первая программа на MFC]]></category>
		<category><![CDATA[Приложения]]></category>
		<category><![CDATA[Load]]></category>
		<category><![CDATA[Метод Abort]]></category>

		<guid isPermaLink="false">http://www.programmfc.ru/uncategorized/%d0%bc%d0%b5%d1%82%d0%be%d0%b4-abort-2.html</guid>
		<description><![CDATA[Тем не менее, мы может прекратить работу архива в любое время при помощи метода Abort(), исходный текст которого находится в файле агссоге.срр:
void CArchive::Abort() {
ASSERT(m_bDirectBuffer &#124;&#124;
m_lpBufStart == NULL &#124;&#124; AfxIsValidAddress(m_lpBufStart,
m_lpBufMax &#8211; m_lpBufStart, IsStoring()));
ASSERT(m_bDirectBuffer &#124;&#124;
m_lpBufCur == NULL &#124;&#124; AfxIsValidAddress(m_lpBufCur,
m_lpBufMax &#8211; m_lpBufCur, IsStoring()));
// disconnect from the file mjpFile = NULL;
if (!m_bUserBuf) {
ASSERT(!m_bDirectBuffer); delete[] m_lpBufStart; m_lpBufStart = NULL; m_lpBufCur [...]]]></description>
			<content:encoded><![CDATA[<p>Тем не менее, мы может прекратить работу архива в любое время при помощи метода Abort(), исходный текст которого находится в файле агссоге.срр:</p>
<p><b>void CArchive::Abort() {</b></p>
<p><b>ASSERT(m_bDirectBuffer ||</b></p>
<p><b>m_lpBufStart == NULL || AfxIsValidAddress(m_lpBufStart,</b></p>
<p><b>m_lpBufMax &#8211; m_lpBufStart, IsStoring()));</b></p>
<p><b>ASSERT(m_bDirectBuffer ||</b></p>
<p><b>m_lpBufCur == NULL || AfxIsValidAddress(m_lpBufCur,</b></p>
<p><b>m_lpBufMax &#8211; m_lpBufCur, IsStoring()));</b></p>
<p><b>// disconnect from the file mjpFile = NULL;</b></p>
<p><b>if (!m_bUserBuf) {</b></p>
<p><b>ASSERT(!m_bDirectBuffer); delete[] m_lpBufStart; m_lpBufStart = NULL; m_lpBufCur = NULL;</b></p>
<p>}</p>
<p><b>delete m_pSchemaMap; m_pSchemaMap = NULL;</b></p>
<p><b>// m_pStoreMap and m_pLoadArray are unioned, // so we only need to delete one</b></p>
<p><b>ASSERT((CObject*)m_pStoreMap == (CObject*)m_pLoadArray); delete (CObject*)m_pLoadArray; m_pLoadArray = NULL;</b>Посмотрим, что происходит с архивом в случае прекращения работы посредством вызова метода AbortQ. Первым делом метод «отсоединяет» архив от файла, присваивая полю m__pFile значе­ние NULL. Затем в том случае, если у архива есть ассоциированный с ним буфер, производится удаление буфера. Если в буфере остались данные, которые не были записаны в файл, то эти данные будут потеряны. Указатели на начало буфера и на текущую позицию буфера делаются равными NULL. Затем удаляется указатель на хэш-таблицу, содержащую номера схем классов, а за ней и хэш-таблица (или массив) сохраненных объектов.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmfc.ru/uncategorized/%d0%bc%d0%b5%d1%82%d0%be%d0%b4-abort-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Метод Abort</title>
		<link>http://www.programmfc.ru/uncategorized/%d0%bc%d0%b5%d1%82%d0%be%d0%b4-abort.html</link>
		<comments>http://www.programmfc.ru/uncategorized/%d0%bc%d0%b5%d1%82%d0%be%d0%b4-abort.html#comments</comments>
		<pubDate>Wed, 03 Feb 2010 19:15:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Первая программа на MFC]]></category>
		<category><![CDATA[Приложения]]></category>
		<category><![CDATA[Метод Abort]]></category>

		<guid isPermaLink="false">http://www.programmfc.ru/uncategorized/%d0%bc%d0%b5%d1%82%d0%be%d0%b4-abort.html</guid>
		<description><![CDATA[Метод закрывает ассоциированный с объектом поток, что автоматически приводит и к закрытию файла, «очищает» зна­чения полей m_hFile и тjpStream. В случае возникновении ошиб­ки при закрытии потока формируется исключение.
В том случае, если для программиста не очень важно, закрылся поток нормально или с ошибкой, программист может воспользо­ваться методом Abort(), текст которого приведен ниже:
void CStdioFile::Abort() {
ASSERT_VALID(this);
if (m_pStream != [...]]]></description>
			<content:encoded><![CDATA[<p><i>Метод закрывает ассоциированный с объектом поток, что автоматически приводит и к закрытию файла, «очищает» зна­чения полей m_hFile и тjpStream. </i>В случае возникновении ошиб­ки при закрытии потока формируется исключение.</p>
<p>В том случае, если для программиста не очень важно, закрылся поток нормально или с ошибкой, программист может воспользо­ваться методом Abort(), текст которого приведен ниже:</p>
<p><b>void CStdioFile::Abort() {</b></p>
<p><b>ASSERT_VALID(this);</b></p>
<p><b>if (m_pStream != NULL &amp;&amp; m_bCloseOnDelete)</b></p>
<p><b>fclose(m_pStream); // close but ignore errors m_hFile = (UINT) hFileNull; m_pStream = NULL; m_bCloseOnDelete = FALSE;</b></p>
<p>Как и метод Close(), метод Abort() закрывает поток, обнуляет поля m_hFile и m_pStream, но в случае возникновения ошибки при за­крытии потока никаких исключений не формируется.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.programmfc.ru/uncategorized/%d0%bc%d0%b5%d1%82%d0%be%d0%b4-abort.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
