{"id":194590,"date":"2013-10-14T22:37:03","date_gmt":"2013-10-14T18:37:03","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=194590"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=194590","title":{"rendered":"<span class=\"post_title\">\u0412\u043f\u0435\u0447\u0430\u0442\u043b\u0435\u043d\u0438\u044f \u043e\u0442 \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430 \u0441 Ultimate++<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t\u0415\u0441\u043b\u0438 \u0432\u044b \u0444\u0440\u0438\u043b\u0430\u043d\u0441\u0435\u0440 \u0438 \u043b\u044e\u0431\u0438\u0442\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0441\u0440\u0435\u0434\u0430\u043c\u0438 \u043f\u043e\u0434 \u0421++, \u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443<a href=\"http:\/\/www.ultimatepp.org\/\"> Ultimate++<\/a>, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0443\u0437\u043d\u0430\u043b \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0446\u0438\u043a\u043b\u0443 \u0441\u0442\u0430\u0442\u0435\u0439 \u0421\u0435\u043c\u0435\u043d\u0430 \u0415\u0441\u0438\u043b\u0435\u0432\u0441\u043a\u043e\u0433\u043e (<a href=\"http:\/\/osa.samag.ru\/get\/OpenSource068.zip\">\u0447.1<\/a>, <a href=\"http:\/\/osa.samag.ru\/get\/OpenSource069.zip\">\u0447.2<\/a>, <a href=\"http:\/\/osa.samag.ru\/get\/OpenSource070.zip\">\u0447.3<\/a>, <a href=\"http:\/\/osa.samag.ru\/get\/OpenSource071.zip\">\u0447.4<\/a> \u2014 \u0432\u0441\u0435 \u0435\u0441\u0442\u044c \u043d\u0430 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/Ultimate%2B%2B\">\u0432\u0438\u043a\u0438<\/a>) \u0441 \u0442\u0430\u043a\u0438\u043c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u043f\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c:  <\/p>\n<blockquote><p>\u00ab\u041f\u0435\u0440\u0435\u0432\u0435\u0448\u0438\u0432\u0430\u044e\u0442 \u043b\u0438 \u0432\u044b\u0433\u043e\u0434\u044b U++ \u0435\u0433\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u00ab\u0431\u0430\u0440\u044c\u0435\u0440 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f\u00bb? \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0434\u0430. U++ \u2013 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u0434\u043b\u044f \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u00ab\u0441 \u043d\u0443\u043b\u044f\u00bb, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.\u00bb<\/p><\/blockquote>\n<p>  \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u0442\u0435 \u043d\u044e\u0430\u043d\u0441\u044b U++, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0441\u043a\u043e\u043f\u0430\u0442\u044c \u043d\u0430 <a href=\"http:\/\/www.ultimatepp.org\/forum\/\">\u0444\u043e\u0440\u0443\u043c\u0435<\/a> \u0438 <a href=\"http:\/\/www.ultimatepp.org\/www%24uppweb%24documentation%24en-us.html\">\u043c\u0430\u043d\u0443\u0430\u043b\u0430\u0445<\/a> \u0437\u0430 \u043c\u0435\u0441\u044f\u0446 \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0445\u0441\u044f \u0432 \u0431\u0430\u0437\u0435. \u0421\u0440\u0430\u0437\u0443 \u043e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441 \u00ab\u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u0440\u043e\u0438\u0446\u0435\u0439\u00bb \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u043d\u044c\u0448\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0433\u043e gui \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b WTL \u0438 \u0441 \u043d\u0430\u0434\u0435\u0436\u0434\u043e\u0439 \u0441\u043c\u043e\u0442\u0440\u0435\u043b \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"http:\/\/msdn.microsoft.com\/ru-ru\/magazine\/cc534994.aspx\">eGUI++<\/a>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0430\u0432\u0442\u043e\u0440 \u0437\u0430\u0431\u0440\u043e\u0441\u0438\u043b, \u0430 \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u043c\u0443.<\/p>\n<p>  <a name=\"habracut\"><\/a>\u041f\u0440\u0435\u0436\u0434\u0435 \u0432\u0441\u0435\u0433\u043e, Ultimate++ \u044d\u0442\u043e \u0443\u043b\u044c\u0442\u0438\u043c\u0430\u0442\u0443\u043c: \u043b\u0438\u0431\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u0441\u0440\u0435\u0434\u0430 TheIDE, \u043b\u0438\u0431\u043e, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u0442\u0430\u043a\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u043f\u043e\u0434 Windows, \u043a\u0430\u043a Visual Studio + STL + POCO + WTL. \u041a\u0430\u043a \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435, \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0430\u0431\u044b\u0442\u044c \u043e\u0431 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\u0445, \u0445\u043e\u0442\u044f \u0432 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u043c \u044f\u0434\u0440\u043e \u043f\u0440\u0438\u043b\u0438\u0447\u043d\u043e\u0435, \u0447\u0442\u043e \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043c\u043d\u043e\u044e \u043a\u043e\u0434\u0430 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0439 \u043a\u043b\u0438\u0435\u043d\u0442-\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0444\u0430\u0439\u043b\u043e\u0432.<\/p>\n<h4>\u042f\u0434\u0440\u043e<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u0414\u0435\u043b\u0435\u0433\u0430\u0442\u044b (\u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 \u0432 GUI; \u043b\u0438\u0447\u043d\u043e \u043c\u0435\u043d\u044f \u043e\u043d\u0438 \u0437\u0430\u0446\u0435\u043f\u0438\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0441\u0435\u0433\u043e)<br \/> \n<pre><code class=\"cpp\">\/\/\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f:  \/\/\u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u0430 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u043c\u0435\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 4\u0445 \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 void Func() {};  void Func4(int, double, String, Value) {}  \/\/\u0434\u0435\u043b\u0435\u0433\u0430\u0442\u044b \u0434\u043b\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0439 GUI_APP_MAIN {\t \tCallback cb = callback(Func); \tcb();  \t\/\/stateful \tCallback cb4 = callback4(Func4, 1, 2, AsString(3), 4); \tcb4();  \t\/\/stateless \tCallback4&lt;int double string value&gt; cb1 = callback(Func4); \tcb1(1, 2, AsString(3), 4); }  \/\/\u0434\u0435\u043b\u0435\u0433\u0430\u0442\u044b \u0432 \u043a\u043b\u0430\u0441\u0441\u0435 class AppMain { public: \t\/\/\u0434\u043b\u044f THISBACK \ttypedef AppMain CLASSNAME; \t \tCallback cb; \tCallback cb4;  \tAppMain() { \t\tcb = THISBACK(Func); \t\tcb4 = THISBACK4(Func4, 1, 2, AsString(3), 4); \t} \t \tvoid Func() {};  \tvoid Func4(int, double, String, Value) {}\t };  \/\/\u0434\u0435\u043b\u0435\u0433\u0430\u0442\u044b \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 GUI_APP_MAIN {\t \tAppMain m; \tm.cb = callback(&amp;m, &amp;AppMain::Func); \tm.cb4 = callback4(&amp;m, &amp;AppMain::Func4, 1, 2, AsString(3), 4); } &lt;\/int&gt;<\/code><\/pre>\n<p>  <\/li>\n<li>\u0421\u0438\u043d\u0433\u043b\u0442\u043e\u043d<br \/> \n<pre><code class=\"cpp\">\/\/\u043a\u043b\u0430\u0441\u0441 SomeClass \u0434\u043e\u043b\u0436\u0435\u043d \u0438\u043c\u0435\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e Single&lt;someclass&gt;().SomeMethod(); <\/code><\/pre>\n<p>  <\/li>\n<li>\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (\u0438\u043c\u0435\u0439\u0442\u0435 \u0432\u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u0434\u043b\u044f \u0432\u0435\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0445 \u0447\u0438\u0441\u0435\u043b \u0432\u043c\u0435\u0441\u0442\u043e %lf \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f %f)<br \/> \n<pre><code class=\"cpp\">\/\/\u0432\u044b\u0432\u043e\u0434 \u043d\u0430 \u044d\u043a\u0440\u0430\u043d \u0438 \u0432 \u0444\u0430\u0439\u043b StdLogSetup(LOG_COUT|LOG_FILE); ... LOG(Format(&quot;Total %d files have sended\\n&quot;, n)); LOG(&quot;Total &quot;  <\/code><\/pre>\n<p>  <\/li>\n<li>INI-\u0444\u0430\u0439\u043b\u044b<br \/> \n<pre><code class=\"cpp\">VectorMap&lt;string string&gt; config = LoadIniFile(GetExeDirFile(&quot;config.ini&quot;)); String host = config.Get(&quot;HOST&quot;); int port = ScanInt(config.Get(&quot;PORT&quot;)); \t for (int i = 0; i  &lt;\/string&gt;<\/code><\/pre>\n<p>  <\/li>\n<li>\u041c\u043d\u043e\u0433\u043e\u043f\u043e\u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c<br \/> \n<pre><code class=\"cpp\">\/\/\u0431\u0435\u0437 \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f Thread::Start(callback(Func));  \/\/c \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u0435\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f Thread th;\t th.Run(callback(Func)); th.Wait();  Thread::ShutdownThreads();\t <\/code><\/pre>\n<p>  \u041d\u0430\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u044f \u043f\u043e\u043d\u044f\u043b, OpenMP \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0432\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u0435\u0434\u0430\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f <a href=\"http:\/\/www.ultimatepp.org\/reference$CoWork$en-us.html\">CoWork<\/a>, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0441 \u0434\u0435\u043b\u0435\u0433\u0430\u0442\u0430\u043c\u0438, \u0447\u0442\u043e \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u043d\u0438\u044f \u0446\u0438\u043a\u043b\u043e\u0432 \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435 \u0443\u0434\u043e\u0431\u043d\u043e.<\/p>\n<\/li>\n<li>\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0439 JSON (\u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0437\u0430 \u0441\u0447\u0435\u0442 \u043f\u0430\u0440\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0439 Base64Encode\/Base64Decode)<br \/> \n<pre><code class=\"cpp\">FileIn fp(fname); Json json; json(&quot;fname&quot;, fname)(&quot;fsize&quot;, (int)fp.GetSize())(&quot;fdata&quot;, Base64Encode(LoadFile(fname))); \t ValueArray jsonAr = ParseJSON(json.ToString()); fname = jsonAr[0]; int fsize = jsonAr[1]; String fdata = Base64Decode(jsonAr[2]); <\/code><\/pre>\n<p>  <\/li>\n<li>\u0421\u043e\u043a\u0435\u0442\u044b<br \/> \n<pre><code class=\"cpp\">TcpSocket server; if (!server.Listen(port)) { \tLOG(Format(&quot;Can't open server port %d for listening\\n&quot;, port)); \treturn; }  for(;;) { \tLOG(&quot;Waiting...&quot;);  \tTcpSocket socket;\t  \tif (socket.Accept(server))\t{ \t\tString msg = &quot;&quot;;\t\t\t \t\tfor (int c = socket.Get(); c &gt; 0 &amp;&amp; c != '\\n'; c = socket.Get()) { \t\t\tmsg.Cat(c);\t\t\t\t \t\t} \t} }\t <\/code><\/pre>\n<p>  <\/li>\n<li>RegExp (PCRE)<br \/> \n<pre><code class=\"cpp\">RegExp reg(&quot;(\\\\\\\\)&quot;); String path = &quot;D:\\\\test.txt&quot;; if (reg.Match(path)) { \tint last; \tint first; \treg.GetMatchPos(0, first, last);        \t  \tString drive = path.Mid(0, last); \tString fname = path.Mid(last); } <\/code><\/pre>\n<p>  <\/li>\n<li>\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0443\u0442\u0435\u0447\u0435\u043a \u043f\u0430\u043c\u044f\u0442\u0438 (malloc \u043d\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f)<br \/> \n<pre><code class=\"cpp\">GUI_APP_MAIN {   \tdouble *d = new double(0); } <\/code><\/pre>\n<p><img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/353\/50f\/ad6\/35350fad61af93a3cba5ae86285b5343.png\" alt=\"image\"\/>  <\/li>\n<\/ul>\n<p>  <\/p>\n<h4>SQL<\/h4>\n<p>  \u041f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 <a href=\"http:\/\/www.ultimatepp.org\/srcdoc$Sql$tutorial$en-us.html\">\u0441\u044e\u0434\u0430<\/a> \u0438 <a href=\"http:\/\/www.ultimatepp.org\/src$Sql$SqlExp$en-us.html\">\u0441\u044e\u0434\u0430<\/a>. \u041f\u043e\u043a\u043b\u043e\u043d\u043d\u0438\u043a\u0438 php\/Yii \u0434\u043e\u043b\u0436\u043d\u044b \u043e\u0446\u0435\u043d\u0438\u0442\u044c. <\/p>\n<h4>QTF (ReportView)<\/h4>\n<p>  QTF \u044d\u0442\u043e \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 U++ \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0433\u043e \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u0442\u0435\u043a\u0441\u0442\u0430. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 RichEdit \u0438 \u043f\u0440\u0438 \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0442\u0447\u0435\u0442\u043e\u0432. \u0412 TheIDE \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0437\u0430\u0439\u043d\u0435\u0440 \u0434\u043b\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u043e\u0432:<\/p>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/333\/aac\/cb4\/333aaccb48290038ffbbff863d43362a.png\" alt=\"image\"\/><\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u043e\u0442\u0440\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0430\u043b\u043e\u0433 \u0434\u043b\u044f \u043f\u0435\u0447\u0430\u0442\u0438 \u043e\u0442\u0447\u0435\u0442\u0430 (\u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432 pdf \u0435\u0441\u0442\u044c \u0432 \u043d\u0435\u0434\u0440\u0430\u0445 ReportWindow):  <\/p>\n<pre><code class=\"cpp\">Color rgb_color = Color(109, 171, 211); String qtf_color = Format(&quot;@(%d.%d.%d)&quot;, rgb_color.GetR(), rgb_color.GetG(), rgb_color.GetB());  String qtf; qtf.Cat(Format(&quot;[R9\/%s Habrahabr &amp;]&quot;, qtf_color)); qtf.Cat(Format(&quot;[_%s \u043b\u0435\u043d\u0442\u0430] [ \u043f\u043e\u0441\u0442\u044b] [_%s q\\\\&amp;a] [_%s \u0441\u043e\u0431\u044b\u0442\u0438\u044f] [_%s \u0445\u0430\u0431\u044b] [_%s \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438]&quot;,  \tqtf_color, qtf_color, qtf_color, qtf_color, qtf_color)); \t Report rep; rep &lt;&lt; qtf; \t ReportWindow().Perform(rep); <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/8cd\/15a\/90f\/8cd15a90f477f0b10d7d64ba14a20ac5.png\" alt=\"image\"\/><\/p>\n<p>  \u0421\u0442\u0438\u043b\u0435\u0432\u043e\u0435 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u0435 \u0442\u0435\u043a\u0441\u0442\u0430 \u043e\u0431\u0440\u0430\u043c\u043b\u044f\u0435\u0442\u0441\u044f \u0442\u044d\u0433\u0430\u043c\u0438 [ \u0438 ], \u043f\u0440\u0438\u0447\u0435\u043c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0437\u0430 \u0441\u043a\u043e\u0431\u043a\u043e\u0439 [ \u0438\u0434\u0443\u0442 QTF-\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b, \u0430 \u0437\u0430\u0442\u0435\u043c \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0435\u0440\u0435\u0437 \u043f\u0440\u043e\u0431\u0435\u043b \u0442\u0435\u043a\u0441\u0442. \u0412 \u0446\u0435\u043b\u043e\u043c \u043f\u0440\u0438\u043d\u0446\u0438\u043f \u043a\u0430\u043a \u0432 HTML, \u0440\u0430\u0437\u043d\u0438\u0446\u0430 \u043b\u0438\u0448\u044c \u0432 \u043d\u0430\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u0438\u044f\u0445. <\/p>\n<h4>Bazaar<\/h4>\n<p>  <a href=\"http:\/\/www.ultimatepp.org\/www$uppweb$bazaar$en-us.html\">Bazar<\/a> \u044d\u0442\u043e \u043d\u0430\u0431\u043e\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a \u0434\u043b\u044f \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043d\u0443\u0436\u0434, \u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u043b\u0430\u0441\u044c \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 Word\/Excel \u0432 <a href=\"http:\/\/www.ultimatepp.org\/srcdoc$OfficeAutomation$OfficeAutomation$en-us.html\">Office Automation<\/a>:   <\/p>\n<pre><code class=\"cpp\">#include &lt;OfficeAutomation\/OfficeAutomation.h&gt;  GUI_APP_MAIN {\t \t\/\/Excel \tOfficeSheet sheet; \t \tbool xlsOn = sheet.IsAvailable(&quot;Microsoft&quot;); \tif (xlsOn) \t\tsheet.Init(&quot;Microsoft&quot;);  \t\/\/Open Office Calc \tif (!xlsOn) { \t\txlsOn = sheet.IsAvailable(&quot;Open&quot;); \t\tif (xlsOn) \t\t\tsheet.Init(&quot;Open&quot;); \t} \t\t \tif (xlsOn) { \t\tFileSel fs; \t\tfs.Type(&quot;\u0424\u0430\u0439\u043b\u044b \u0442\u0430\u0431\u043b\u0438\u0446&quot;, &quot;*.xls *.xlsx&quot;); \t\tfs.AllFilesType(); \t\t \t\tif (fs.ExecuteOpen(&quot;\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 Excel \u0444\u0430\u0439\u043b&quot;)) { \t\t\tsheet.OpenSheet(~fs, true);\t \t\t\tsheet.AddSheet(true); \t\t} \t} \t\t\t \t\/\/Word \tOfficeDoc doc; \t \t\/\/\u0415\u0441\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d Word2003 \u0438 Word2007, \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e Word2003. \u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0440\u0430\u0437\u0432\u043e\u0434\u0438\u0442 \u0440\u0443\u043a\u0430\u043c\u0438. \tbool docOn = doc.IsAvailable(&quot;Microsoft&quot;); \tif (docOn) \t\tdoc.Init(&quot;Microsoft&quot;);  \t\/\/Open Office Writer \tif (!docOn) { \t\tdocOn = doc.IsAvailable(&quot;Open&quot;); \t\tif (docOn) \t\t\tdoc.Init(&quot;Open&quot;); \t} \t\t \tif (docOn) { \t\tFileSel fs; \t\tfs.Type(&quot;\u0424\u0430\u0439\u043b\u044b Word&quot;, &quot;*.doc *.docx *.rtf&quot;); \t\tfs.AllFilesType(); \t\t \t\tif (fs.ExecuteOpen(&quot;\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 Word \u0444\u0430\u0439\u043b&quot;)) { \t\t\tdoc.OpenDoc(~fs, true);\t \t\t\tdoc.AddDoc(true); \t\t} \t} } <\/code><\/pre>\n<h4>\u041d\u044e\u0430\u043d\u0441\u044b<\/h4>\n<p>  <\/p>\n<ul>\n<li>\u0420\u0443\u0441\u0441\u043a\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439 \u0434\u0438\u0430\u043b\u043e\u0433 \u0432\u044b\u0431\u043e\u0440\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0435 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0438\u0442 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u043f\u0430\u043f\u043a\u0438, \u043f\u0440\u0438\u0447\u0435\u043c \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0441\u0430\u043c\u0430 Windows \u0440\u0443\u0441\u0441\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u0430:<br \/> \n<pre><code class=\"cpp\">SetLanguage(SetLNGCharset(GetSystemLNG(), CHARSET_UTF8)); <\/code><\/pre>\n<p>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/418\/f0c\/647\/418f0c647586e5467e622d04785b6ed9.png\" alt=\"image\"\/>  <\/li>\n<li>\u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"http:\/\/www.ultimatepp.org\/www%24uppweb%24apps%24en-us.html\">\u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a>, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u043d\u0435\u0442 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432 \u0441 \u0438\u043a\u043e\u043d\u043a\u0430\u043c\u0438 \u0438 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u0432 \u043c\u0435\u043d\u044e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435\u043b\u044c\u0437\u044f \u2014 \u0438\u043a\u043e\u043d\u043a\u0438 \u0441 \u0442\u0435\u043a\u0441\u0442\u043e\u043c \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044b \u043c\u0435\u043d\u044e, \u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0435 \u043c\u0435\u043d\u044e \u0432\u0441\u0435\u0433\u0434\u0430 \u0442\u0435\u043a\u0441\u0442\u043e\u0432\u043e\u0435.<\/li>\n<li>\u0423 \u043a\u043d\u043e\u043f\u043e\u043a \u043d\u0435\u0442 \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430.<\/li>\n<li>\u041d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0431\u043b\u043e\u0447\u043d\u043e\u0435 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u043e\u043a \u0447\u0435\u0440\u0435\u0437 Alt+Shift+\u0441\u0442\u0435\u043b\u043e\u0447\u043a\u0438+tab, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 Visual Studio \u0438 Notepad++ \u043d\u0430\u043f\u0440\u044f\u0433\u0430\u0435\u0442.<\/li>\n<li>\u0421\u0430\u043c\u0430\u044f \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u043e\u043c \u043a\u0430\u0441\u0430\u0435\u0442\u0441\u044f \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u043e\u0442\u043c\u0435\u043d\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438. \u041f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0434\u0432\u0443\u0445 \u0438\u043f\u043e\u0441\u0442\u0430\u0441\u044f\u0445: \u043f\u0440\u0438 \u0440\u0443\u0447\u043d\u043e\u0439 \u043e\u0442\u043c\u0435\u043d\u0435 (\u0438\u043b\u0438 Ctrl+Z) \u0441\u043e\u0441\u0435\u0434\u043d\u0438\u0435 \u0438 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0440\u043e\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u0448\u0438\u0432\u0430\u0442\u044c\u0441\u044f (\u0437\u0430 \u0434\u0435\u043d\u044c \u043e\u0434\u0438\u043d- \u0434\u0432\u0430 \u0440\u0430\u0437\u0430 \u043b\u043e\u0432\u0438\u0442\u0441\u044f); \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 F5 \u0438\u043b\u0438 Ctrl+F5 \u043e\u0442\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f, \u043e\u043f\u044f\u0442\u044c \u0436\u0435 \u0438\u043d\u043e\u0433\u0434\u0430, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 (\u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0447\u0430\u0449\u0435).  <\/li>\n<li>\u0415\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 Intellisense, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0445\u043e\u0442\u043d\u0435\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u044b \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0432 \u043a\u043e\u0434\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0447\u0435\u043c \u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0442\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0439. \u0422\u0430\u043a\u0436\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u043d\u0438\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0439, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u0443 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u043a\u043e\u0434 <code>obj.f() <\/code> \u043d\u0435 \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f \u0431\u044b \u0432 <code>obj.f() ()<\/code>  <\/li>\n<\/ul>\n<p>  <\/p>\n<h4>\u0420\u0435\u0437\u044e\u043c\u0435<\/h4>\n<p>  \u0412\u043b\u0438\u0432\u0430\u0439\u0442\u0435\u0441\u044c! \u041c\u043d\u043e\u0433\u0438\u0435 \u043c\u043e\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u043d\u0435 \u0432\u044b\u043f\u0438\u0441\u0430\u043b, \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f. 32 \u043c\u0431 \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u0430 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0442.    \t<\/p>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/194590\/\"> http:\/\/habrahabr.ru\/post\/194590\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t\u0415\u0441\u043b\u0438 \u0432\u044b \u0444\u0440\u0438\u043b\u0430\u043d\u0441\u0435\u0440 \u0438 \u043b\u044e\u0431\u0438\u0442\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u044d\u043a\u0437\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0441\u0440\u0435\u0434\u0430\u043c\u0438 \u043f\u043e\u0434 \u0421++, \u0442\u043e \u0441\u0442\u043e\u0438\u0442 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043d\u0430 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u0443<a href=\"http:\/\/www.ultimatepp.org\/\"> Ultimate++<\/a>, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u044f \u0443\u0437\u043d\u0430\u043b \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0446\u0438\u043a\u043b\u0443 \u0441\u0442\u0430\u0442\u0435\u0439 \u0421\u0435\u043c\u0435\u043d\u0430 \u0415\u0441\u0438\u043b\u0435\u0432\u0441\u043a\u043e\u0433\u043e (<a href=\"http:\/\/osa.samag.ru\/get\/OpenSource068.zip\">\u0447.1<\/a>, <a href=\"http:\/\/osa.samag.ru\/get\/OpenSource069.zip\">\u0447.2<\/a>, <a href=\"http:\/\/osa.samag.ru\/get\/OpenSource070.zip\">\u0447.3<\/a>, <a href=\"http:\/\/osa.samag.ru\/get\/OpenSource071.zip\">\u0447.4<\/a> \u2014 \u0432\u0441\u0435 \u0435\u0441\u0442\u044c \u043d\u0430 <a href=\"http:\/\/ru.wikipedia.org\/wiki\/Ultimate%2B%2B\">\u0432\u0438\u043a\u0438<\/a>) \u0441 \u0442\u0430\u043a\u0438\u043c \u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u043c \u043d\u0430\u043f\u0443\u0442\u0441\u0442\u0432\u0438\u0435\u043c:  <\/p>\n<blockquote><p>\u00ab\u041f\u0435\u0440\u0435\u0432\u0435\u0448\u0438\u0432\u0430\u044e\u0442 \u043b\u0438 \u0432\u044b\u0433\u043e\u0434\u044b U++ \u0435\u0433\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u00ab\u0431\u0430\u0440\u044c\u0435\u0440 \u0432\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f\u00bb? \u041d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u0434\u0430. U++ \u2013 \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u044b\u0439 \u0432\u044b\u0431\u043e\u0440 \u0434\u043b\u044f \u043a\u0440\u043e\u0441\u0441\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u00ab\u0441 \u043d\u0443\u043b\u044f\u00bb, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445.\u00bb<\/p><\/blockquote>\n<p>  \u041f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c \u0442\u0435 \u043d\u044e\u0430\u043d\u0441\u044b U++, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0441\u043a\u043e\u043f\u0430\u0442\u044c \u043d\u0430 <a href=\"http:\/\/www.ultimatepp.org\/forum\/\">\u0444\u043e\u0440\u0443\u043c\u0435<\/a> \u0438 <a href=\"http:\/\/www.ultimatepp.org\/www%24uppweb%24documentation%24en-us.html\">\u043c\u0430\u043d\u0443\u0430\u043b\u0430\u0445<\/a> \u0437\u0430 \u043c\u0435\u0441\u044f\u0446 \u0435\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0430\u0434 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u043c \u0441\u043f\u0440\u0430\u0432\u043e\u0447\u043d\u0438\u043a\u043e\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0445\u0441\u044f \u0432 \u0431\u0430\u0437\u0435. \u0421\u0440\u0430\u0437\u0443 \u043e\u0442\u043c\u0435\u0447\u0443, \u0447\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0441 \u00ab\u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0442\u0440\u043e\u0438\u0446\u0435\u0439\u00bb \u043d\u0435 \u0431\u0443\u0434\u0435\u0442, \u0442\u0430\u043a \u043a\u0430\u043a \u0440\u0430\u043d\u044c\u0448\u0435 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u0435\u0439\u0448\u0435\u0433\u043e gui \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b WTL \u0438 \u0441 \u043d\u0430\u0434\u0435\u0436\u0434\u043e\u0439 \u0441\u043c\u043e\u0442\u0440\u0435\u043b \u043d\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"http:\/\/msdn.microsoft.com\/ru-ru\/magazine\/cc534994.aspx\">eGUI++<\/a>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e, \u043a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u0430\u0432\u0442\u043e\u0440 \u0437\u0430\u0431\u0440\u043e\u0441\u0438\u043b, \u0430 \u043f\u043e\u0434\u0445\u0432\u0430\u0442\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u043c\u0443.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-194590","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/194590","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=194590"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/194590\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=194590"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=194590"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=194590"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}