dxtrans.h missing in Microsoft DirectX SDK (November 2007)...
c:\program files\microsoft sdks\windows\v6.0a\include\qedit.h(498) : fatal error C1083: Cannot open include file: 'dxtrans.h': No such file or directory
What's wrong with it? If no dxtrans.h, why put it there in Visual Studio Installtion file, for what?
Regards
Answers
- Sorry, my mistake. Use the August 2007 DirectX SDK.
All Replies
dxtrans.h ships with the DirectX SDK. Try copying the file from the DXSDK's install location to c:\program files\microsoft sdks\windows\v6.0a\include\
I've already installed Microsoft DirectX SDK (November 2007)
Obviously, Microsoft DirectX SDK (November 2007) doesn't contain dxtrans.h
What to do ?
Best Regards
JIA Pei- Sorry, my mistake. Use the August 2007 DirectX SDK.
- Problem solved with " DirectX SDK (November 2007) ".
Remove anything to do with "dxtrans.h" and "IDXEffect" .
Say, for file "qedit.h"
//#include "dxtrans.h" -- Line 498
// IDxtCompositor //: public IDXEffect -- Line 837
// IDxtAlphaSetter //: public IDXEffect -- Line 1151
// IDxtJpeg //: public IDXEffect -- Line 1345
// IDxtKey //: public IDXEffect -- Line 1735
Now, everything compiles and works fine.
Regards
JIA
Jason Sacks - MSFT wrote: Sorry, my mistake. Use the August 2007 DirectX SDK. - That solved it for me as well, qedit.h wasn't compiling. Thank you for posting this.
- The problem still persists with DX March 2008 SDK. I did modify Qedit.h as well - so now i can compile. However, its only a work around. Why is this file requested but not available anymore? I just installed Windows SDK 6.1 and March 08 DX SDK and ran into this problem with VS2005 on Vista...
- We're investigating adding this file for our Windows 7 releases. In the meantime use the workaround posted above.
You can get by with less edits of qedit.h (commenting out the missing interfaces can be error prone).
Comment out the include of dxtrans.h.
Before you include qedit.h, add the following #defines:
#define
__IDxtCompositor_INTERFACE_DEFINED__#define
__IDxtAlphaSetter_INTERFACE_DEFINED__#define
__IDxtJpeg_INTERFACE_DEFINED__#define
__IDxtKey_INTERFACE_DEFINED__#include
<qedit.h>Though removed anything with "dxtrans.h" and "IDXEffect" , can not compile on VC++ 2008 Express edition installed DX March 2008 SDK .
"To compile qedit.h , you must install the Direct X 9 SDK ,to obtain the dxtrans.h " is displayed and compile is stopped.
But DX March 208 SDK does not have "dxtrans.h".
What to do?
Please advice to me.
Regards
HIRS
You need to use an earlier version of the DirectX SDK, such as the August 2007 DirectX SDK.
--Karin
||Karin Meier||Windows SDK PM||Build Environment.Samples.Community||http://blogs.msdn.com/KarinM||
- thank you from a newbye of directshow ;] this post is very IMPORTANT
Very good post. Was trying to use ISampleGrabber Filter in DirectShow which requires Qedit.h.
I copied Qedit.h into my project folder, commented out the #include dxtrans.h directive and then put in the define statements as posted above just before I include Qedit.h. Finally compiles without errors. I do get a message that reads: "To compile qedit.h you must install the DirectX 9 SDK, to obtain the dxtrans.h header" I have August 2007 installed (and using Visual C++ Express 2008). Is this going to cause problems? I assume this message is a result from using Qedit.h from my project folder.
That message is simply a #pragma message(....), as a hint to anyone trying to compile qedit.h without dxtrans.h. The message has no other effect, and if you have modified your version of qedit.h, you can safely ignore the message.
In retrospect I think that #pragma has confused more people than it has helped. :-(
- Mike
- I've followed all of your constructions with the result that there have been still some links within the qedit.idl to dxtrans. So i removed everything within the qedit.idl as well.
line 11
line 217-224
- Tom Very helpful! With one more line you can get by without editing qedit.h.
#pragma
include_alias( "dxtrans.h", "qedit.h" )#define
__IDxtCompositor_INTERFACE_DEFINED__#define
__IDxtAlphaSetter_INTERFACE_DEFINED__#define
__IDxtJpeg_INTERFACE_DEFINED__#define
__IDxtKey_INTERFACE_DEFINED__#include <qedit.h>
Ken
- Proposed As Answer byWill Hendrie Tuesday, August 11, 2009 2:17 PM
- Really clever. Thanks. Too bad this issue was marked as "answered" even though the root problem *still* remains!
- File 'dxtrans.h' is pressed in next packs:
- Microsoft Visual Studio
- Windows Mobile SDK
see next paths:
- Program Files\Microsoft Visual Studio X.X\SmartDevices\SDK\PocketPC2003\Include\dxtrans.h
- Program Files\Microsoft Visual Studio X.X\SmartDevices\SDK\Smartphone2003\Include\dxtrans.h
- Program Files\Windows Mobile 5.0 SDK R2\PocketPC\Include\Armv4i\dxtrans.h
- Program Files\Windows Mobile 5.0 SDK R2\Smartphone\Include\Armv4i\dxtrans.h
Copy this file in Windows SDK
(copy 'dxtrans.h' to x:\Program Files\Microsoft SDKs\Windows\v6.1\Include\dxtrans.h)
and rebuild solution - Enjoy!- Proposed As Answer byLucian Carata Friday, February 27, 2009 1:07 PM
- Hi,
I'm facing similar trouble trying to use the Sample Grabber Filter. My IDE is Borland C++ Builder 6, and my OS is Windows 2000. I have the DirectX 9.0 SDK, from 2004. This SDK already has the "dxtrans.h" file, so I didn't have to make those changes in the "qedit.h" file. However, I still get two link errors, which say:
"[C++ Warning] strmif.h(20557): W8058 Cannot create pre-compiled header: initialized data in header
[Linker Error] Unresolved external '_CLSID_SampleGrabber' referenced from C:\TRABALHO\CONTROLE DE SOM\RAMOS\DIRECTSOUND\FUNCOESDSHOW.OBJ
[Linker Error] Unresolved external '_IID_ISampleGrabber' referenced from C:\TRABALHO\CONTROLE DE SOM\RAMOS\DIRECTSOUND\FUNCOESDSHOW.OBJ"
Does anybody have a suggestion in my case? I have already included "qedit.h" in my file. Thanks,
Adriano.
- My question in the previous post was answered in another thread, which is in this URL:
http://social.msdn.microsoft.com/Forums/en-US/windowsdirectshowdevelopment/thread/a6773067-8270-4ac6-9365-842235808058
Regards,
Adriano.
- Great guy! still a good workaround.
(using DirectX SDK (March 2009) )
,thanks - That worked for me. Thanks for the post.
Cheers - Thank you very much, worked without a problem.


