<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Visual Studio on Mamadou Babaei</title>
    <link>https://www.babaei.net/tags/visual-studio/</link>
    <description>Recent content in Visual Studio on Mamadou Babaei</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 05 May 2025 23:00:00 +0200</lastBuildDate><atom:link href="https://www.babaei.net/tags/visual-studio/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Building Unreal Engine 5.6 From the GitHub Source Code on Microsoft Windows</title>
      <link>https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-microsof-windows/</link>
      <pubDate>Mon, 05 May 2025 23:00:00 +0200</pubDate>
      
      <guid>https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-microsof-windows/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-microsof-windows/build-unreal-engine-from-github-source-code-microsof-windows.webp&#34; alt=&#34;Building Unreal Engine 5.6 from the GitHub Source Code&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/build-unreal-engine-from-github-source-code-microsof-windows/build-unreal-engine-from-github-source-code-microsof-windows.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Building Unreal Engine 5.6 from the GitHub Source Code&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;Alright&amp;hellip; I’m back.
Yes, I know—I vanished for a while. But just like the upcoming Unreal Engine &lt;code&gt;5.6&lt;/code&gt; release, I’ve been quietly cooking in the shadows. And now… we’re both making a comeback.&lt;/p&gt;
&lt;p&gt;Today’s tutorial is all about how to build Unreal Engine &lt;code&gt;5.6&lt;/code&gt; from source—on Windows. That’s right, &lt;code&gt;5.6&lt;/code&gt; isn’t officially out yet, but we’re not waiting around. If you’re impatient like me—or just curious to see what Epic’s brewing before the rest of the world—this video is for you.&lt;/p&gt;
&lt;p&gt;Now, some of you patient folks out there might be thinking:
“Why bother? Can’t I just wait for the release?”
Fair question. But here’s the deal—I work for a company that publishes Unreal Engine plugins on the Fab Store. And they want their plugin ready on day zero when the new engine drops. The catch? Epic only allows you to submit plugins once the final version is officially released. So to stay ahead of the curve, we grab the source early, build it, test it, and make sure everything works before the launch day.&lt;/p&gt;
&lt;p&gt;And hey, if you’re a Linux user—don’t worry—I’ve got a separate video coming soon. Just not today. Because building on Linux is like dating in your forties… not complicated, exactly—just different.&lt;/p&gt;
&lt;p&gt;We’ll be diving into more Unreal Engine &lt;code&gt;5.6&lt;/code&gt; goodness over the coming months, so buckle up, hit that subscribe button, and let’s get nerdy.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Post-Processing Effects in Cocos2d-x</title>
      <link>https://www.babaei.net/blog/post-processing-effects-in-cocos2d-x/</link>
      <pubDate>Fri, 08 Jan 2016 22:10:30 +0330</pubDate>
      
      <guid>https://www.babaei.net/blog/post-processing-effects-in-cocos2d-x/</guid>
      <description>&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/post-processing-effects-in-cocos2d-x/gray-black-and-white-shader.webp&#34; alt=&#34;Picture A: Gray (black and white) post-processing effect in Cocos2d-x&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/post-processing-effects-in-cocos2d-x/gray-black-and-white-shader.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Picture A: Gray (black and white) post-processing effect in Cocos2d-x&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Update [2020/10/23]:&lt;/strong&gt; &lt;em&gt;Since I wrote this tutorial many things has changed in Cocos2d-x and I haven&amp;rsquo;t been using it in years as I switched to Unreal Engine 4. According to &lt;a href=&#34;https://github.com/NuLL3rr0r/babaei.net/issues/2&#34;&gt;this GitHub issue&lt;/a&gt; opened by my blog readers, in order for this code to work there has to be some modifications to the code which is provided on that issue by @lazerfalcon and @madrazo. I was also &lt;a href=&#34;https://stackoverflow.com/questions/34595594/cocos2dx-sprite3d-wont-render-to-texture/39073958#39073958&#34;&gt;having trouble with render to texture on Sprite3D&lt;/a&gt; which seems to have been solved in newer versions.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Despite the fact that &lt;a href=&#34;http://cocos2d-x.org/&#34;&gt;Cocos2d-x&lt;/a&gt; uses the &lt;a href=&#34;https://www.khronos.org/opengles/&#34;&gt;OpenGL ES Shading Language v1.0&lt;/a&gt; for the shaders (in order to learn more about the language, please refer to: &lt;a href=&#34;https://www.khronos.org/files/opengles_shading_language.pdf&#34;&gt;OpenGL ES Shading Language v1.0 Spec&lt;/a&gt;) the engine does not provide an out-of-the-box API to apply post-processing effects to the whole game scene output at once.&lt;/p&gt;
&lt;p&gt;In this tutorial we will learn an easy way to apply multiple post-processing effects to the game scene output all at once.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Book Review: Application Development with Qt Creator - Second Edition</title>
      <link>https://www.babaei.net/blog/book-review-application-development-with-qt-creator-second-edition/</link>
      <pubDate>Mon, 29 Dec 2014 04:27:20 +0330</pubDate>
      
      <guid>https://www.babaei.net/blog/book-review-application-development-with-qt-creator-second-edition/</guid>
      <description>&lt;p&gt;Almost three weeks ago I received a review request from one of the &lt;em&gt;&lt;a href=&#34;http://www.packtpub.com/&#34;&gt;Packt Publishing&lt;/a&gt;&lt;/em&gt; staffs to review &lt;em&gt;&lt;a href=&#34;http://www.packtpub.com/application-development/application-development-qt-creator-2nd-edition&#34;&gt;Application Development with Qt Creator, 2nd Edition&lt;/a&gt;&lt;/em&gt; written by &lt;em&gt;&lt;a href=&#34;http://www.lothlorien.com/dove/&#34;&gt;Ray Rischpater&lt;/a&gt;&lt;/em&gt; which has been recently published by Packt Publishing. Since I&amp;rsquo;ve been developing cross platform &lt;a href=&#34;http://qt-project.org/&#34;&gt;Qt&lt;/a&gt; (cute, often mispronounced as Q-T cue-tee) applications from Qt 4 era back in 2008 &amp;ndash; when Qt Creator was not around yet and the project was running by Trolltech at the time &amp;ndash; and a handful of Qt Quick mobile applications over the past two years, I consider myself eligible enough to write a brief review on it. So, I was provided with a review copy and after reading it cover to cover, my thoughts on the book are as follows.&lt;/p&gt;

&lt;link rel=&#34;stylesheet&#34; href=&#34;https://www.babaei.net/css/hugo-easy-gallery.css&#34; /&gt;
&lt;div class=&#34;box&#34; &gt;
  &lt;figure  itemprop=&#34;associatedMedia&#34; itemscope itemtype=&#34;http://schema.org/ImageObject&#34;&gt;
    &lt;div class=&#34;img&#34;&gt;
      &lt;img itemprop=&#34;thumbnail&#34; src=&#34;https://www.babaei.net/blog/book-review-application-development-with-qt-creator-second-edition/book-review-application-development-with-qt-creator-second-edition.webp&#34; alt=&#34;Application Development with Qt Creator, 2nd Edition&#34;/&gt;
    &lt;/div&gt;
    &lt;a href=&#34;https://www.babaei.net/blog/book-review-application-development-with-qt-creator-second-edition/book-review-application-development-with-qt-creator-second-edition.webp&#34; itemprop=&#34;contentUrl&#34;&gt;&lt;/a&gt;
      &lt;figcaption&gt;
          &lt;p&gt;Application Development with Qt Creator, 2nd Edition&lt;/p&gt;
      &lt;/figcaption&gt;
  &lt;/figure&gt;
&lt;/div&gt;</description>
    </item>
    
    <item>
      <title>Write Your Own Cross-Platform Cryptographic Library</title>
      <link>https://www.babaei.net/blog/write-your-own-cross-platform-cryptographic-library/</link>
      <pubDate>Fri, 15 Feb 2013 08:11:00 +0330</pubDate>
      
      <guid>https://www.babaei.net/blog/write-your-own-cross-platform-cryptographic-library/</guid>
      <description>&lt;p&gt;Previously I&amp;rsquo;ve described &lt;a href=&#34;https://www.babaei.net/blog/how-to-build-cpp-cryptographic-library-cryptopp/&#34;&gt;the process of building Crypto++ on both FreeBSD and Windows using the GCC, MinGW and VC++ compilers&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Now, we want to develop our own cross-platform cryptographic wrapper library around Crypto++. I&amp;rsquo;ve already uploaded the full source code to &lt;a href=&#34;http://github.com&#34;&gt;GitHub&lt;/a&gt;. You can find the link to the code on GitHub at the end of this article.&lt;/p&gt;
&lt;p&gt;Before you proceed, you have to build the Crypto++ library as I mentioned earlier &lt;a href=&#34;https://www.babaei.net/blog/how-to-build-cpp-cryptographic-library-cryptopp/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>How to Build C&#43;&#43; Cryptographic Library, Crypto&#43;&#43;</title>
      <link>https://www.babaei.net/blog/how-to-build-cpp-cryptographic-library-cryptopp/</link>
      <pubDate>Fri, 15 Feb 2013 03:50:00 +0330</pubDate>
      
      <guid>https://www.babaei.net/blog/how-to-build-cpp-cryptographic-library-cryptopp/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.cryptopp.com/&#34;&gt;Crypto++&lt;/a&gt; is an awesome free and open source C++ class library of cryptographic algorithms and schemes which fully supports 32-bit and 64-bit architectures for many major operating systems, including FreeBSD, Linux, Solaris, Windows, Mac OS X and iOS. Currently, Crypto++ officially supports the following compilers:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;MSVC 6.0 - 2010&lt;/li&gt;
&lt;li&gt;GCC 3.3 - 4.5&lt;/li&gt;
&lt;li&gt;C++Builder 2010&lt;/li&gt;
&lt;li&gt;Intel C++ Compiler 9 - 11.1&lt;/li&gt;
&lt;li&gt;Sun Studio 12u1, Express 11/08, Express 06/10&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The latest version at the time of this writing is 5.6.1.&lt;/p&gt;
&lt;p&gt;In spite of the power that Crypto++ offers, building and using it can be a little bit tricky. In the following we will describe the process of building Crypto++ on both FreeBSD and Windows using the GCC, MinGW and VC++ compilers.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Should I Check if a Pointer Is NULL Before Deleting It?</title>
      <link>https://www.babaei.net/blog/should-i-check-if-pointer-is-null-before-deleting-it/</link>
      <pubDate>Mon, 11 Feb 2013 01:52:00 +0330</pubDate>
      
      <guid>https://www.babaei.net/blog/should-i-check-if-pointer-is-null-before-deleting-it/</guid>
      <description>&lt;p&gt;Most of the time I see some C++ programmers who check if a pointer is NULL before deleting it.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; (ptr &lt;span style=&#34;color:#f92672&#34;&gt;!=&lt;/span&gt; NULL) {
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;delete&lt;/span&gt; ptr;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    ptr &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; NULL;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Well, according to &lt;em&gt;C++03 [ISO/IEC IS 14882:2003] §5.3.5/2&lt;/em&gt; which explicitly states:&lt;/p&gt;











  
  
  
  





  


&lt;blockquote&gt;
  &lt;p&gt;&amp;hellip;if the value of the operand of delete is the null pointer the operation has no effect.&lt;/p&gt;
  &lt;footer&gt;
    &lt;strong&gt;C&amp;#43;&amp;#43; Standard Core Language Defect Reports and Accepted Issues, Revision 82&lt;/strong&gt;
    
      
        &lt;cite&gt;
          &lt;a href=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#348&#34; title=&#34;http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#348&#34;&gt;delete and user-written deallocation functions&lt;/a&gt; 
        &lt;/cite&gt;
      
    
  &lt;/footer&gt;
&lt;/blockquote&gt;

&lt;p&gt;Therefore, deleting a &lt;em&gt;NULL pointer&lt;/em&gt; has no effect (if the deallocation function is one supplied in the standard library), so it is not necessary to check for a &lt;em&gt;NULL pointer&lt;/em&gt; before calling delete.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-cpp&#34; data-lang=&#34;cpp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;delete&lt;/span&gt; ptr;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;ptr &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; NULL;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;&lt;strong&gt;Note&lt;/strong&gt;: Keep in mind that deleting a &lt;strong&gt;void*&lt;/strong&gt; pointer results in &lt;strike&gt;undefined behavior&lt;/strike&gt; whether it&amp;rsquo;s &lt;strong&gt;NULL&lt;/strong&gt; or not.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
  </channel>
</rss>
