{"id":2217,"date":"2016-05-05T10:05:15","date_gmt":"2016-05-05T08:05:15","guid":{"rendered":"http:\/\/mariusbancila.ro\/blog\/?p=2217"},"modified":"2016-05-05T10:05:15","modified_gmt":"2016-05-05T08:05:15","slug":"building-the-64-bit-version-of-chromium-embedded-framework-on-windows","status":"publish","type":"post","link":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/","title":{"rendered":"Building the 64-bit version of Chromium Embedded Framework on Windows"},"content":{"rendered":"<p>The <a href=\"https:\/\/bitbucket.org\/chromiumembedded\/cef\" target=\"_blank\">Chromium Embedded Framework<\/a> (CEF for short) is an open source framework for embedding Chromium-based browsers in other applications. The base implementation is targeting C\/C++ applications but ports for other languages exist (these include Java, C#, Delphi, Python).<\/p>\n<p>The nightly builds (for various systems and platforms) of CEF are available for download at <a href=\"https:\/\/cefbuilds.com\/\" target=\"_blank\">https:\/\/cefbuilds.com\/<\/a>. These include:<\/p>\n<ul>\n<li>CEF source code necessary to build your apps with<\/li>\n<li>CEF dynamic and static library files (together with its dependencies) that you must use in your application<\/li>\n<li>C++ wrappers for the C API<\/li>\n<li>source code of two sample applications, one called CefSimple and one called CefClient<\/li>\n<li>symbol files for debugging binary distribution of CEF<\/li>\n<li>build of CefClient sample app with all dependencies and resources<\/li>\n<\/ul>\n<p>Building the 64-bit version of the sample applications is not straight forward though. In this article I will show what you have to do make it work.<\/p>\n<h3>Prerequisites<\/h3>\n<p>The following prerequisites are necessary:<\/p>\n<ul>\n<li>Visual Studio 2013<\/li>\n<li><a href=\"https:\/\/cmake.org\/\" target=\"_blank\">CMake<\/a> tools<\/li>\n<\/ul>\n<p><b>Notice<\/b>: Though CMake should be able to generate projects for Visual Studio 2015, I was not able to make it happen. Moreover, the <tt>cef_sandbox.lib<\/tt> lib is built with Visual C++ 2013 which means the modules that are linking it should also be built with the same tool set.<\/p>\n<p>You should download the nightly build of the development branch for Windows 64 bit and unzip it.<\/p>\n<h3>Create Visual Studio projects<\/h3>\n<p>To create Visual Studio projects run the following command from the CEF&#8217;s main folder in a console:<\/p>\n<pre class=\"lang:default decode:true \" >cmake -G \"Visual Studio 12\"<\/pre>\n<p>This will create:<\/p>\n<ul>\n<li>a VC++ 2013 solution called <strong>cef.sln<\/strong> in the main folder<\/li>\n<li>VC++ 2013 project files for libcef_dll, cefsimple, cefclient<\/li>\n<li>two additional project files called ALL_BUILD and ZERO_CHECK<\/li>\n<\/ul>\n<p>This is how the content of the CEF folder looks after generating the Visual Studio project and solution files.<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef3.png\" rel=\"attachment wp-att-2223\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef3.png\" alt=\"cef3\" width=\"591\" height=\"502\" class=\"alignnone size-full wp-image-2223\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef3.png 591w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef3-300x255.png 300w\" sizes=\"auto, (max-width: 591px) 100vw, 591px\" \/><\/a><\/p>\n<p>This is how the Visual Studio solutions looks.<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef1.png\" rel=\"attachment wp-att-2220\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef1.png\" alt=\"cef1\" width=\"305\" height=\"199\" class=\"alignnone size-full wp-image-2220\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef1.png 305w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef1-300x196.png 300w\" sizes=\"auto, (max-width: 305px) 100vw, 305px\" \/><\/a><\/p>\n<h3>Create 64-bit configurations<\/h3>\n<p>Though the download is suppose to represent the 64-bit version of the framework, and the DLLs and LIBs in the Debug and Release folder (i.e. the CEF builds and its dependencies) are indeed built for the x64 platform, the generated projects do not have configurations targeting the x64 platform.<\/p>\n<p>What you have to do is:<\/p>\n<ul>\n<li>create configuration for targeting the x64 platform (by copying the settings from x86)<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef7.png\" rel=\"attachment wp-att-2233\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef7.png\" alt=\"cef7\" width=\"767\" height=\"483\" class=\"alignnone size-full wp-image-2233\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef7.png 767w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef7-300x189.png 300w\" sizes=\"auto, (max-width: 767px) 100vw, 767px\" \/><\/a>\n<\/li>\n<li>change the <strong>Output Directory<\/strong> for all projects and configurations to be <strong>$(SolutionDir)$(Configuration)\\<\/strong> which means the output folder will be the existing Debug or Release folder from the main CEF folder.<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef8.png\" rel=\"attachment wp-att-2234\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef8.png\" alt=\"cef8\" width=\"768\" height=\"132\" class=\"alignnone size-full wp-image-2234\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef8.png 768w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef8-300x52.png 300w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a>\n<\/li>\n<li>for the <strong>libcef_dll<\/strong> project change the <em>Librarian > All Options > Additional options<\/em> to <tt>\/machine:X64 %(AdditionalOptions)<\/tt><br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef9.png\" rel=\"attachment wp-att-2236\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef9.png\" alt=\"cef9\" width=\"765\" height=\"240\" class=\"alignnone size-full wp-image-2236\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef9.png 765w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef9-300x94.png 300w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><\/a><\/li>\n<li>for the <strong>cefsimple<\/strong> and <strong>cefclient<\/strong> projects change the additional dependencies settings to point to <strong>libcef.lib<\/strong>, <strong>libcef_dll_wrapper.lib<\/strong> and <strong>cef_sandbox.lib<\/strong>, instead of the relative paths as in the project.<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef10.png\" rel=\"attachment wp-att-2238\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef10.png\" alt=\"cef10\" width=\"853\" height=\"575\" class=\"alignnone size-full wp-image-2238\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef10.png 853w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef10-300x202.png 300w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef10-768x518.png 768w\" sizes=\"auto, (max-width: 853px) 100vw, 853px\" \/><\/a><br \/>\nThis is how the list should look for all platforms and configurations:<\/p>\n<pre class=\"lang:default decode:true \" >kernel32.lib;user32.lib;gdi32.lib;winspool.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;comdlg32.lib;advapi32.lib;libcef.lib;libcef_dll_wrapper.lib;comctl32.lib;rpcrt4.lib;shlwapi.lib;cef_sandbox.lib;dbghelp.lib;psapi.lib<\/pre>\n<\/li>\n<li>for the <strong>cefsimple<\/strong> and <strong>cefclient<\/strong> projects add <strong>$(SolutionDir)$(Configuration)\\<\/strong> to the Library Directories for all configurations and platforms<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef11.png\" rel=\"attachment wp-att-2240\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef11.png\" alt=\"cef11\" width=\"835\" height=\"230\" class=\"alignnone size-full wp-image-2240\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef11.png 835w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef11-300x83.png 300w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef11-768x212.png 768w\" sizes=\"auto, (max-width: 835px) 100vw, 835px\" \/><\/a>\n<\/li>\n<li>modify the Post Build Event for the <strong>cefsimple<\/strong> and <strong>cefclient<\/strong> projects to no longer copy files from the solution&#8217;s Debug and Release folders to the project&#8217;s Debug and Release folders.\n<p>Initially, the post build event looks like this (for Debug configurations)<\/p>\n<pre class=\"lang:default decode:true \" >setlocal\r\nmt.exe -nologo -manifest \"C:\/Dev\/CEF0\/cefsimple\/cefsimple.exe.manifest\" \"C:\/Dev\/CEF0\/cefsimple\/compatibility.manifest\" -outputresource:\"C:\/Dev\/CEF0\/cefsimple\/Debug\/cefsimple.exe\";#1\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Debug\/d3dcompiler_43.dll C:\/Dev\/CEF0\/cefsimple\/Debug\/d3dcompiler_43.dll\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Debug\/d3dcompiler_47.dll C:\/Dev\/CEF0\/cefsimple\/Debug\/d3dcompiler_47.dll\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Debug\/libcef.dll C:\/Dev\/CEF0\/cefsimple\/Debug\/libcef.dll\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Debug\/libEGL.dll C:\/Dev\/CEF0\/cefsimple\/Debug\/libEGL.dll\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Debug\/libGLESv2.dll C:\/Dev\/CEF0\/cefsimple\/Debug\/libGLESv2.dll\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Debug\/natives_blob.bin C:\/Dev\/CEF0\/cefsimple\/Debug\/natives_blob.bin\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Debug\/snapshot_blob.bin C:\/Dev\/CEF0\/cefsimple\/Debug\/snapshot_blob.bin\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Debug\/wow_helper.exe C:\/Dev\/CEF0\/cefsimple\/Debug\/wow_helper.exe\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Resources\/cef.pak C:\/Dev\/CEF0\/cefsimple\/Debug\/cef.pak\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Resources\/cef_100_percent.pak C:\/Dev\/CEF0\/cefsimple\/Debug\/cef_100_percent.pak\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Resources\/cef_200_percent.pak C:\/Dev\/CEF0\/cefsimple\/Debug\/cef_200_percent.pak\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Resources\/cef_extensions.pak C:\/Dev\/CEF0\/cefsimple\/Debug\/cef_extensions.pak\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Resources\/devtools_resources.pak C:\/Dev\/CEF0\/cefsimple\/Debug\/devtools_resources.pak\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_if_different C:\/Dev\/CEF0\/Resources\/icudtl.dat C:\/Dev\/CEF0\/cefsimple\/Debug\/icudtl.dat\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd\r\nsetlocal\r\n\"C:\\Program Files (x86)\\CMake\\bin\\cmake.exe\" -E copy_directory C:\/Dev\/CEF0\/Resources\/locales C:\/Dev\/CEF0\/cefsimple\/Debug\/locales\r\nif %errorlevel% neq 0 goto :cmEnd\r\n:cmEnd\r\nendlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone\r\n:cmErrorLevel\r\nexit \/b %1\r\n:cmDone\r\nif %errorlevel% neq 0 goto :VCEnd<\/pre>\n<p>It should be changed to look like this (beware at the output folder indicated by <tt>outputresource<\/tt>; it should be the Debug\\Release folder in the main folder):<\/p>\n<pre class=\"lang:default decode:true \" >setlocal\r\nmt.exe -nologo -manifest \"C:\/Dev\/CEF0\/cefsimple\/cefsimple.exe.manifest\" \"C:\/Dev\/CEF0\/cefsimple\/compatibility.manifest\" -outputresource:\"C:\/Dev\/CEF0\/Debug\/cefsimple.exe\";#1\r\n<\/pre>\n<\/li>\n<\/ul>\n<h3>Resources<\/h3>\n<p>In the main folder there is a sub-folder called Resources. The entire content of this folder must be copied to the out folders, Debug and\/or Release. These files are necessary for the sample applications to run properly.<\/p>\n<h3>Building and running<\/h3>\n<p>With all these in place you can build the projects. The build should succeed and the content of the Debug folder for instance should look like below.<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef4.png\" rel=\"attachment wp-att-2224\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef4.png\" alt=\"cef4\" width=\"588\" height=\"526\" class=\"alignnone size-full wp-image-2224\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef4.png 588w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef4-300x268.png 300w\" sizes=\"auto, (max-width: 588px) 100vw, 588px\" \/><\/a><\/p>\n<p>You can then run the two sample applications. This is how cefsimple looks.<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef5.png\" rel=\"attachment wp-att-2225\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef5.png\" alt=\"cef5\" width=\"985\" height=\"590\" class=\"alignnone size-full wp-image-2225\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef5.png 985w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef5-300x180.png 300w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef5-768x460.png 768w\" sizes=\"auto, (max-width: 985px) 100vw, 985px\" \/><\/a><\/p>\n<p>This is how cefclient looks.<br \/>\n<a href=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef6.png\" rel=\"attachment wp-att-2226\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef6.png\" alt=\"cef6\" width=\"984\" height=\"638\" class=\"alignnone size-full wp-image-2226\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef6.png 984w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef6-300x195.png 300w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef6-768x498.png 768w\" sizes=\"auto, (max-width: 984px) 100vw, 984px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Chromium Embedded Framework (CEF for short) is an open source framework for embedding Chromium-based browsers in other applications. The base implementation is targeting C\/C++ applications but ports for other languages exist (these include Java, C#, Delphi, Python). The nightly builds (for various systems and platforms) of CEF are available for download at https:\/\/cefbuilds.com\/. These &#8230; <a title=\"Building the 64-bit version of Chromium Embedded Framework on Windows\" class=\"read-more\" href=\"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/\" aria-label=\"Read more about Building the 64-bit version of Chromium Embedded Framework on Windows\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[237,7,10],"tags":[451,478,203,479,34,238],"class_list":["post-2217","post","type-post","status-publish","format-standard","hentry","category-64bit","category-c","category-visual-studio","tag-c","tag-cef","tag-chrome","tag-chromium","tag-vc","tag-x64"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"This article explains the steps to build the 64-bit version of the Chromium Embedded Framework (CEF) on Windows with Visual Studio 2013.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Marius Bancila\"\/>\n\t<meta name=\"keywords\" content=\"cef,chrome,chromium,c++,vc++,x64\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Marius Bancila&#039;s Blog | About code. Mostly on C++\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Building the 64-bit version of Chromium Embedded Framework on Windows\" \/>\n\t\t<meta property=\"og:description\" content=\"This article explains the steps to build the 64-bit version of the Chromium Embedded Framework (CEF) on Windows with Visual Studio 2013.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2016-05-05T08:05:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2016-05-05T08:05:15+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Building the 64-bit version of Chromium Embedded Framework on Windows\" \/>\n\t\t<meta name=\"twitter:description\" content=\"This article explains the steps to build the 64-bit version of the Chromium Embedded Framework (CEF) on Windows with Visual Studio 2013.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2016\\\/05\\\/05\\\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\\\/#article\",\"name\":\"Building the 64-bit version of Chromium Embedded Framework on Windows\",\"headline\":\"Building the 64-bit version of Chromium Embedded Framework on Windows\",\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/05\\\/cef3.png\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2016\\\/05\\\/05\\\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\\\/#articleImage\",\"width\":591,\"height\":502},\"datePublished\":\"2016-05-05T10:05:15+02:00\",\"dateModified\":\"2016-05-05T10:05:15+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":8,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2016\\\/05\\\/05\\\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2016\\\/05\\\/05\\\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\\\/#webpage\"},\"articleSection\":\"64bit, C++, Visual Studio, C++, CEF, Chrome, chromium, VC++, x64\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2016\\\/05\\\/05\\\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"name\":\"IT\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"position\":2,\"name\":\"IT\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"name\":\"Software\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"position\":3,\"name\":\"Software\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"name\":\"C++\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"name\":\"IT\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"position\":4,\"name\":\"C++\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2016\\\/05\\\/05\\\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\\\/#listItem\",\"name\":\"Building the 64-bit version of Chromium Embedded Framework on Windows\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"name\":\"Software\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2016\\\/05\\\/05\\\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\\\/#listItem\",\"position\":5,\"name\":\"Building the 64-bit version of Chromium Embedded Framework on Windows\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"name\":\"C++\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/\",\"name\":\"Marius Bancila\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2016\\\/05\\\/05\\\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Marius Bancila\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2016\\\/05\\\/05\\\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\\\/#webpage\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2016\\\/05\\\/05\\\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\\\/\",\"name\":\"Building the 64-bit version of Chromium Embedded Framework on Windows\",\"description\":\"This article explains the steps to build the 64-bit version of the Chromium Embedded Framework (CEF) on Windows with Visual Studio 2013.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2016\\\/05\\\/05\\\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2016-05-05T10:05:15+02:00\",\"dateModified\":\"2016-05-05T10:05:15+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Building the 64-bit version of Chromium Embedded Framework on Windows","description":"This article explains the steps to build the 64-bit version of the Chromium Embedded Framework (CEF) on Windows with Visual Studio 2013.","canonical_url":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/","robots":"max-image-preview:large","keywords":"cef,chrome,chromium,c++,vc++,x64","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/#article","name":"Building the 64-bit version of Chromium Embedded Framework on Windows","headline":"Building the 64-bit version of Chromium Embedded Framework on Windows","author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2016\/05\/cef3.png","@id":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/#articleImage","width":591,"height":502},"datePublished":"2016-05-05T10:05:15+02:00","dateModified":"2016-05-05T10:05:15+02:00","inLanguage":"en-US","commentCount":8,"mainEntityOfPage":{"@id":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/#webpage"},"isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/#webpage"},"articleSection":"64bit, C++, Visual Studio, C++, CEF, Chrome, chromium, VC++, x64"},{"@type":"BreadcrumbList","@id":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/#listItem","position":1,"name":"Home","item":"https:\/\/mariusbancila.ro\/blog\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","name":"IT"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","position":2,"name":"IT","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","name":"Software"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","position":3,"name":"Software","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","name":"C++"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","name":"IT"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","position":4,"name":"C++","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/#listItem","name":"Building the 64-bit version of Chromium Embedded Framework on Windows"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","name":"Software"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/#listItem","position":5,"name":"Building the 64-bit version of Chromium Embedded Framework on Windows","previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","name":"C++"}}]},{"@type":"Organization","@id":"https:\/\/mariusbancila.ro\/blog\/#organization","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","url":"https:\/\/mariusbancila.ro\/blog\/"},{"@type":"Person","@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author","url":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/","name":"Marius Bancila","image":{"@type":"ImageObject","@id":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g","width":96,"height":96,"caption":"Marius Bancila"}},{"@type":"WebPage","@id":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/#webpage","url":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/","name":"Building the 64-bit version of Chromium Embedded Framework on Windows","description":"This article explains the steps to build the 64-bit version of the Chromium Embedded Framework (CEF) on Windows with Visual Studio 2013.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/#breadcrumblist"},"author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"creator":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"datePublished":"2016-05-05T10:05:15+02:00","dateModified":"2016-05-05T10:05:15+02:00"},{"@type":"WebSite","@id":"https:\/\/mariusbancila.ro\/blog\/#website","url":"https:\/\/mariusbancila.ro\/blog\/","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","inLanguage":"en-US","publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Marius Bancila's Blog | About code. Mostly on C++","og:type":"article","og:title":"Building the 64-bit version of Chromium Embedded Framework on Windows","og:description":"This article explains the steps to build the 64-bit version of the Chromium Embedded Framework (CEF) on Windows with Visual Studio 2013.","og:url":"https:\/\/mariusbancila.ro\/blog\/2016\/05\/05\/building-the-64-bit-version-of-chromium-embedded-framework-on-windows\/","article:published_time":"2016-05-05T08:05:15+00:00","article:modified_time":"2016-05-05T08:05:15+00:00","twitter:card":"summary","twitter:title":"Building the 64-bit version of Chromium Embedded Framework on Windows","twitter:description":"This article explains the steps to build the 64-bit version of the Chromium Embedded Framework (CEF) on Windows with Visual Studio 2013."},"aioseo_meta_data":{"post_id":"2217","title":null,"description":"This article explains the steps to build the 64-bit version of the Chromium Embedded Framework (CEF) on Windows with Visual Studio 2013.","keywords":[{"label":"CEF","value":"CEF"},{"label":"chrome","value":"chrome"},{"label":"chromium","value":"chromium"},{"label":"C++","value":"C++"},{"label":"VC++","value":"VC++"},{"label":"x64","value":"x64"}],"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-03-18 21:09:29","updated":"2025-12-12 07:43:26","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"author_meta":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"featured_img":null,"jetpack_publicize_connections":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"uagb_comment_info":8,"uagb_excerpt":"The Chromium Embedded Framework (CEF for short) is an open source framework for embedding Chromium-based browsers in other applications. The base implementation is targeting C\/C++ applications but ports for other languages exist (these include Java, C#, Delphi, Python). The nightly builds (for various systems and platforms) of CEF are available for download at https:\/\/cefbuilds.com\/. These&hellip;","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/64bit\/\" class=\"advgb-post-tax-term\">64bit<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/\" class=\"advgb-post-tax-term\">C++<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">Visual Studio<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">64bit<\/span>","<span class=\"advgb-post-tax-term\">C++<\/span>","<span class=\"advgb-post-tax-term\">Visual Studio<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">C++<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">CEF<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">Chrome<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">chromium<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">VC++<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/visual-studio\/\" class=\"advgb-post-tax-term\">x64<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">C++<\/span>","<span class=\"advgb-post-tax-term\">CEF<\/span>","<span class=\"advgb-post-tax-term\">Chrome<\/span>","<span class=\"advgb-post-tax-term\">chromium<\/span>","<span class=\"advgb-post-tax-term\">VC++<\/span>","<span class=\"advgb-post-tax-term\">x64<\/span>"]}},"comment_count":"8","relative_dates":{"created":"Posted 10 years ago","modified":"Updated 10 years ago"},"absolute_dates":{"created":"Posted on May 5, 2016","modified":"Updated on May 5, 2016"},"absolute_dates_time":{"created":"Posted on May 5, 2016 10:05 am","modified":"Updated on May 5, 2016 10:05 am"},"featured_img_caption":"","series_order":"","jetpack_shortlink":"https:\/\/wp.me\/pYNdv-zL","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/2217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/comments?post=2217"}],"version-history":[{"count":17,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/2217\/revisions"}],"predecessor-version":[{"id":2245,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/2217\/revisions\/2245"}],"wp:attachment":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/media?parent=2217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/categories?post=2217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/tags?post=2217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}