{"id":217,"date":"2009-06-17T11:26:45","date_gmt":"2009-06-17T16:26:45","guid":{"rendered":"http:\/\/jaewon.hwang.info\/jaewon\/?p=217"},"modified":"2013-01-14T22:03:29","modified_gmt":"2013-01-15T03:03:29","slug":"a-workaround-for-a-missing-file-dxtrans-h-in-directx-sdk","status":"publish","type":"post","link":"https:\/\/jaewon.hwang.info\/jaewon\/2009\/06\/a-workaround-for-a-missing-file-dxtrans-h-in-directx-sdk\/","title":{"rendered":"A workaround for a missing file, &#8220;dxtrans.h&#8221; in DirectX SDK"},"content":{"rendered":"<p>You may see the following error message when you compile DirectShow with <a href=\"http:\/\/msdn.microsoft.com\/en-us\/directx\/aa937788.aspx\" target=\"_blank\">the latest version of DirectX SDK<\/a>. (the current version is &#8220;DirectX SDK \u2013 March 2009&#8221; at this moment)<\/p>\n<p><span style=\"color: #ff0000;\">C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\include\\qedit.h(498) : fatal error C1083: Cannot open include file: &#8216;dxtrans.h&#8217;: No such file or directory<\/span><\/p>\n<p>This is because &#8220;dxtrans.h&#8221; is not included in the latest version of DirectX SDK any more (from DirectX SDK &#8211; November 2007) although &#8220;qedit.h&#8221; of DirectShow is still dependent on it.<\/p>\n<p>I found <a href=\"http:\/\/social.msdn.microsoft.com\/Forums\/en-US\/windowssdk\/thread\/ed097d2c-3d68-4f48-8448-277eaaf68252\" target=\"_blank\">an article<\/a> posted by people who were already troubled with this problem. The point is that the part of &#8220;qedit.h&#8221; which depends on &#8220;dxtrans.h&#8221; is not necessary to use DirectShow, so you comment it out in &#8220;qedit.h&#8221; and the error will be gone. (For the details, see <a href=\"http:\/\/social.msdn.microsoft.com\/Forums\/en-US\/windowssdk\/thread\/ed097d2c-3d68-4f48-8448-277eaaf68252\" target=\"_blank\">this<\/a>) The other solution which I like better is to define some keywords before including &#8220;qedit.h&#8221; to prevent the &#8220;dxtrans.h&#8221; dependent code from being compiled. Then, you don&#8217;t need to edit &#8220;qedit.h&#8221; itself.<\/p>\n<pre class=\"brush: cpp; toolbar: false;\">#pragma include_alias( \"dxtrans.h\", \"qedit.h\" )\r\n#define __IDxtCompositor_INTERFACE_DEFINED__\r\n#define __IDxtAlphaSetter_INTERFACE_DEFINED__\r\n#define __IDxtJpeg_INTERFACE_DEFINED__\r\n#define __IDxtKey_INTERFACE_DEFINED__\r\n#include &lt;qedit.h&gt;<\/pre>\n<p>FYI. DirectShow is not a part of DirectX SDK any more, and is moved to Microsoft Windows SDK (which has been called Platform SDK for a while). Windows SDK is installed as a part of Visual Studio 2008, so you don&#8217;t need to install it additionally to use DirectShow unless you want <a href=\"http:\/\/msdn.microsoft.com\/en-us\/windows\/bb980924.aspx\" target=\"_blank\">the latest version of Windows SDK<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You may see the following error message when you compile DirectShow with the latest version of DirectX SDK. (the current version is &#8220;DirectX SDK \u2013 March 2009&#8221; at this moment) C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\include\\qedit.h(498) : fatal error C1083: Cannot open include file: &#8216;dxtrans.h&#8217;: No such file or directory This is because &#8220;dxtrans.h&#8221; is not included in [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[30],"class_list":["post-217","post","type-post","status-publish","format-standard","hentry","category-computer","tag-directx"],"_links":{"self":[{"href":"https:\/\/jaewon.hwang.info\/jaewon\/wp-json\/wp\/v2\/posts\/217","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jaewon.hwang.info\/jaewon\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jaewon.hwang.info\/jaewon\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jaewon.hwang.info\/jaewon\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jaewon.hwang.info\/jaewon\/wp-json\/wp\/v2\/comments?post=217"}],"version-history":[{"count":0,"href":"https:\/\/jaewon.hwang.info\/jaewon\/wp-json\/wp\/v2\/posts\/217\/revisions"}],"wp:attachment":[{"href":"https:\/\/jaewon.hwang.info\/jaewon\/wp-json\/wp\/v2\/media?parent=217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jaewon.hwang.info\/jaewon\/wp-json\/wp\/v2\/categories?post=217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jaewon.hwang.info\/jaewon\/wp-json\/wp\/v2\/tags?post=217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}