<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Maniac Programmer's Blog</title>
	
	<link>http://2lx.ru</link>
	<description>Блог помешанного программиста</description>
	<lastBuildDate>Fri, 20 Jan 2012 10:46:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/2lxru/posts" /><feedburner:info uri="2lxru/posts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>2lxru/posts</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Работа с HTTP в Qt</title>
		<link>http://feedproxy.google.com/~r/2lxru/posts/~3/pxlZSriolrw/</link>
		<comments>http://2lx.ru/2012/01/rabota-s-http-v-qt/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 10:46:03 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=606</guid>
		<description>Для отправки HTTP-запросов в Qt используется класс QNetworkAccessManager. В качестве входных параметров ему передается класс QUrl, а на выходе отдается класс QNetworkReply.
Процесс отправки запроса проходит в три этапа: Инициализация QNetworkAccessManager, отправка запроса, прием ответа.
1. Создаем новый QNetworkAccessManager и начинаем ожидать от него сигнала finished:

 nam = new QNetworkAccessManager(this);
 QObject::connect(nam, SIGNAL(finished(QNetworkReply*)),
 ...
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/taVBHTenqhEai9DWlG9MDJLSKFw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/taVBHTenqhEai9DWlG9MDJLSKFw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/taVBHTenqhEai9DWlG9MDJLSKFw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/taVBHTenqhEai9DWlG9MDJLSKFw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/2lxru/posts/~4/pxlZSriolrw" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://2lx.ru/2012/01/rabota-s-http-v-qt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://2lx.ru/2012/01/rabota-s-http-v-qt/</feedburner:origLink></item>
		<item>
		<title>Пакетное переименование файлов на Bash</title>
		<link>http://feedproxy.google.com/~r/2lxru/posts/~3/HXPGDqfSiKw/</link>
		<comments>http://2lx.ru/2012/01/paketnoe-pereimenovanie-fajlov-na-bash/#comments</comments>
		<pubDate>Wed, 11 Jan 2012 10:44:42 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[рекурсия]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=605</guid>
		<description>for i in *.txt; do mv $i ${i%%.txt}.html; done
Рекурсивный вариант:
find . &amp;#124; while read -r file
do
 # replace " - " or space or dash with underscores
 # remove exclamation points and commas
 newfile=$(echo "$file" &amp;#124; sed 's/\s-\s/_/g; s/[-\s]/_/g; s/[!,]//g')
 mv "$infile" "$newfile"
done
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Hl9u1X6lkkzzOsQCpw3V2bG91uw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Hl9u1X6lkkzzOsQCpw3V2bG91uw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Hl9u1X6lkkzzOsQCpw3V2bG91uw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Hl9u1X6lkkzzOsQCpw3V2bG91uw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/2lxru/posts/~4/HXPGDqfSiKw" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://2lx.ru/2012/01/paketnoe-pereimenovanie-fajlov-na-bash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://2lx.ru/2012/01/paketnoe-pereimenovanie-fajlov-na-bash/</feedburner:origLink></item>
		<item>
		<title>Рекурсивный поиск файлов на Qt</title>
		<link>http://feedproxy.google.com/~r/2lxru/posts/~3/kC-9w0zG7wQ/</link>
		<comments>http://2lx.ru/2011/12/rekursivnyj-poisk-fajlov-na-qt/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 10:40:58 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[Qt]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[рекурсия]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=604</guid>
		<description>Ранее я уже писал о рекурсивном поиске файлов на WinAPI. Вот кроссплатформенная реализация на Qt.
Мне известны два способа рекурсивно искать файлы во вложенных подпапках с помощью Qt:
1. С помощью стандартного рекурсивного вызова функции чтения содержимого папок;
2. С помощью класса QDirIterator.
Функция, представленная ниже, ищет и выводит на экран имена файлов в ...
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/RRoSL_7vrrK5ERcMdcK0gz_FBkM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RRoSL_7vrrK5ERcMdcK0gz_FBkM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/RRoSL_7vrrK5ERcMdcK0gz_FBkM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/RRoSL_7vrrK5ERcMdcK0gz_FBkM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/2lxru/posts/~4/kC-9w0zG7wQ" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://2lx.ru/2011/12/rekursivnyj-poisk-fajlov-na-qt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://2lx.ru/2011/12/rekursivnyj-poisk-fajlov-na-qt/</feedburner:origLink></item>
		<item>
		<title>Рекурсивный поиск файлов на WinAPI</title>
		<link>http://feedproxy.google.com/~r/2lxru/posts/~3/aZpIKhfoCfY/</link>
		<comments>http://2lx.ru/2011/12/rekursivnyj-poisk-fajlov-na-winapi/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 10:38:44 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[C / C++]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[WinAPI]]></category>
		<category><![CDATA[рекурсия]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=603</guid>
		<description>Функция рекурсивного поиска файлов с использованием функций WinAPI

void FindRecursive(char *path, char *mask){
	WIN32_FIND_DATA finddata;
	char p[512], buf[512];
	HANDLE hFind;
	bool removed;

	// ищем файлы
	sprintf(p,&amp;#34;%s\\%s&amp;#34;,path, mask);
	hFind = FindFirstFile(p,&amp;#38;finddata);
	if(hFind!=INVALID_HANDLE_VALUE)
	{
		do
		{
// Делаем что-нибудь с найденными файлами

		}while(FindNextFile(hFind,&amp;#38;finddata));
	}
	FindClose(hFind);

	// ищем подпапки
	sprintf(p,&amp;#34;%s\\*&amp;#34;,path);
	hFind = FindFirstFile(p,&amp;#38;finddata);
	if(hFind!=INVALID_HANDLE_VALUE)
	{
		do
		{
			if ((finddata.dwFileAttributes &amp;#38; FILE_ATTRIBUTE_DIRECTORY))
			{
				if (strcmp(finddata.cFileName,&amp;#34;..&amp;#34;) &amp;#38;&amp;#38; strcmp(finddata.cFileName,&amp;#34;.&amp;#34;))
				{
					FindRecursive(buf, mask);
				}
			}
		}while(FindNextFile(hFind,&amp;#38;finddata));
	}
	FindClose(hFind);
}
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ozEOXR6gRMCe7svdOMMGXG2YuC8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ozEOXR6gRMCe7svdOMMGXG2YuC8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ozEOXR6gRMCe7svdOMMGXG2YuC8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ozEOXR6gRMCe7svdOMMGXG2YuC8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/2lxru/posts/~4/aZpIKhfoCfY" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://2lx.ru/2011/12/rekursivnyj-poisk-fajlov-na-winapi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://2lx.ru/2011/12/rekursivnyj-poisk-fajlov-na-winapi/</feedburner:origLink></item>
		<item>
		<title>IP-логгер на PHP</title>
		<link>http://feedproxy.google.com/~r/2lxru/posts/~3/4ezk-i5Be-4/</link>
		<comments>http://2lx.ru/2011/12/ip-logger-na-php/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 10:37:14 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=602</guid>
		<description>Самый простейший логгер посещений вашего сайта на PHP

&amp;#60;?php
$logfile= &amp;#039;/full_path_to/log.html&amp;#039;;
$IP = $_SERVER[&amp;#039;REMOTE_ADDR&amp;#039;];
$logdetails= date(&amp;#34;F j, Y, g:i a&amp;#34;) . &amp;#039;: &amp;#039; . &amp;#039;&amp;#60;a href=http://dnsstuff.com/tools/city.ch?ip=&amp;#039;.$_SERVER[&amp;#039;REMOTE_ADDR&amp;#039;].&amp;#039;&amp;#62;&amp;#039;.$_SERVER[&amp;#039;REMOTE_ADDR&amp;#039;].&amp;#039;&amp;#60;/a&amp;#62;&amp;#039;;
$fp = fopen($logfile, &amp;#34;a&amp;#34;);
fwrite($fp, $logdetails);
fwrite($fp, &amp;#34;&amp;#60;br&amp;#62;&amp;#34;);
fclose($fp);
?&amp;#62;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/l-Wv09vc2dlOvNphJVrc_A-6E60/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/l-Wv09vc2dlOvNphJVrc_A-6E60/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/l-Wv09vc2dlOvNphJVrc_A-6E60/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/l-Wv09vc2dlOvNphJVrc_A-6E60/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/2lxru/posts/~4/4ezk-i5Be-4" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://2lx.ru/2011/12/ip-logger-na-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://2lx.ru/2011/12/ip-logger-na-php/</feedburner:origLink></item>
		<item>
		<title>Симулятор компиляции</title>
		<link>http://feedproxy.google.com/~r/2lxru/posts/~3/q0TaGFWL0Hc/</link>
		<comments>http://2lx.ru/2011/11/simulyator-kompilyacii/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 10:35:38 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Программинг]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=601</guid>
		<description>Скрипт симулирует бесконечную компиляцию, чтобы Вы тем временем могли спокойно ничего не делать.
while true; do awk '{ print ; system("let R=$RANDOM%10; sleep $R") }' compiler.log; done
Для выключения остановите задачу с помощью CTRL-Z, а затем убейте командой kill.
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eTEhzhD-fm9ZdGO0VLrqKS3rlVQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eTEhzhD-fm9ZdGO0VLrqKS3rlVQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eTEhzhD-fm9ZdGO0VLrqKS3rlVQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eTEhzhD-fm9ZdGO0VLrqKS3rlVQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/2lxru/posts/~4/q0TaGFWL0Hc" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://2lx.ru/2011/11/simulyator-kompilyacii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://2lx.ru/2011/11/simulyator-kompilyacii/</feedburner:origLink></item>
		<item>
		<title>Sleep в Qt</title>
		<link>http://feedproxy.google.com/~r/2lxru/posts/~3/hCKfX3hkZxc/</link>
		<comments>http://2lx.ru/2011/11/sleep-v-qt/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 10:33:08 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[Qt]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=600</guid>
		<description>В Qt нет встроенной функции Sleep, да и все говорят, что в подходе &amp;#171;Сигнал-Слот&amp;#187; она не нужна. Однако она все-таки бывет нужна, и вот как ее можно реализовать:

#include &amp;#60;QWaitCondition&amp;#62;
void Sleep(int ms)
{
 QWaitCondition sleep;
 QMutex mutex;
 sleep.wait(&amp;#38;mutex, ms);
}

Использовать так:

int milliseconds = 10 * 1000;
Sleep(milliseconds);

PS: а если хотите все-таки пойти путем &amp;#171;Сигнал-Слот&amp;#187;, ...
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MtNpO09VTsQxOqZPB_JJvjOhb4k/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MtNpO09VTsQxOqZPB_JJvjOhb4k/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MtNpO09VTsQxOqZPB_JJvjOhb4k/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MtNpO09VTsQxOqZPB_JJvjOhb4k/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/2lxru/posts/~4/hCKfX3hkZxc" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://2lx.ru/2011/11/sleep-v-qt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://2lx.ru/2011/11/sleep-v-qt/</feedburner:origLink></item>
		<item>
		<title>Получение списка установленных программ на WinAPI</title>
		<link>http://feedproxy.google.com/~r/2lxru/posts/~3/eZSBeYiX5Jg/</link>
		<comments>http://2lx.ru/2011/11/poluchenie-spiska-ustanovlennyx-programm-na-winapi/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 10:31:09 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[C / C++]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[система]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=599</guid>
		<description>#include &amp;#60;windows.h&amp;#62;
#include &amp;#60;stdio.h&amp;#62;

int main()
{
 DWORD dwIndex = 0;
 LONG ret;
 DWORD cbName = 256;
 TCHAR szSubKeyName[256];
 char szDisplayName[256];
 DWORD dwSize;
 DWORD dwType;

 // Открываем ветку реестра со списком установленных программ
 HKEY hKey;
 if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, &amp;#34;Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall&amp;#34;, 0, KEY_READ, &amp;#38;hKey) != ERROR_SUCCESS)
 return;

 // Поочередно проходим по каждому вложенному разделу
 while ((ret ...
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gIX8bHEJa0sczpyQuiFxkTZO8ZI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gIX8bHEJa0sczpyQuiFxkTZO8ZI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gIX8bHEJa0sczpyQuiFxkTZO8ZI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gIX8bHEJa0sczpyQuiFxkTZO8ZI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/2lxru/posts/~4/eZSBeYiX5Jg" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://2lx.ru/2011/11/poluchenie-spiska-ustanovlennyx-programm-na-winapi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://2lx.ru/2011/11/poluchenie-spiska-ustanovlennyx-programm-na-winapi/</feedburner:origLink></item>
		<item>
		<title>Mandriva 2011 на ноутбуке Asus K72DR</title>
		<link>http://feedproxy.google.com/~r/2lxru/posts/~3/xEGenSN5TXQ/</link>
		<comments>http://2lx.ru/2011/10/mandriva-2011-na-noutbuke-asus-k72dr/#comments</comments>
		<pubDate>Thu, 27 Oct 2011 10:28:31 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mandriva Linux]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=598</guid>
		<description>После установки новой Mandriva 2011 от ROSA выяснились два очень неприятных косяка:
1. Не работают комбинации клавиш Fn+Fx (для включения/ выключения Wi-Fi, настройки яркости, громкости, и т.п.);
2. Процессор постоянно работает на полную мощность и быстро перегревается.
Обе проблемы решаются очень просто.

1. Включаем комбинации клавиш с Fn
Для этого нужно просто установить пакет laptop-mode-tools:
sudo ...
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7cYp5jO7lEHZzfVM8AWbLRaG3iE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7cYp5jO7lEHZzfVM8AWbLRaG3iE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7cYp5jO7lEHZzfVM8AWbLRaG3iE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7cYp5jO7lEHZzfVM8AWbLRaG3iE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/2lxru/posts/~4/xEGenSN5TXQ" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://2lx.ru/2011/10/mandriva-2011-na-noutbuke-asus-k72dr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://2lx.ru/2011/10/mandriva-2011-na-noutbuke-asus-k72dr/</feedburner:origLink></item>
		<item>
		<title>Base64 в C++</title>
		<link>http://feedproxy.google.com/~r/2lxru/posts/~3/B7F5mYdL_08/</link>
		<comments>http://2lx.ru/2011/10/base64-v-c/#comments</comments>
		<pubDate>Wed, 19 Oct 2011 10:25:54 +0000</pubDate>
		<dc:creator>Кто-то</dc:creator>
				<category><![CDATA[C / C++]]></category>
		<category><![CDATA[C++]]></category>

		<guid isPermaLink="false">http://2lx.ru/?p=597</guid>
		<description>В C++ нет встроенных функций для работы с Base64, однако есть готовые сторонние библиотеки.
Очень хорошую библиотеку для кодирования/декодирования Base64 в C++ можно найти тут.
Скачиваем с ранееупомянутой ссылки файлы base64.cpp и base64.h, и подключаем их к своемуц проекту.
Теперь достаточно просто воспользоваться функциями base64_encode и base64_decode:

#include &amp;#34;base64.h&amp;#34;
#include &amp;#60;iostream&amp;#62;
#include &amp;#60;fstream&amp;#62;

using namespace std;

int main(){
 ...
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KB5C6KxfmN62Rh0n6RfA5r3b2r4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KB5C6KxfmN62Rh0n6RfA5r3b2r4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KB5C6KxfmN62Rh0n6RfA5r3b2r4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KB5C6KxfmN62Rh0n6RfA5r3b2r4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/2lxru/posts/~4/B7F5mYdL_08" height="1" width="1"/&gt;</description>
		<wfw:commentRss>http://2lx.ru/2011/10/base64-v-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://2lx.ru/2011/10/base64-v-c/</feedburner:origLink></item>
	</channel>
</rss>

