• FEATURED

View more

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

### The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

# DirectX 9.0a SDK

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

12 replies to this topic

### #1/ ProDevGURU   Members

Posted 05 December 2012 - 01:27 PM

### #2DgekGD  Members

Posted 05 December 2012 - 01:45 PM

You can download sdk from here . It includes everything you need for directx programming(9, 10, 11);

Edited by DgekGD, 05 December 2012 - 01:45 PM.

### #3/ ProDevGURU   Members

Posted 05 December 2012 - 02:25 PM

### #4Tispe  Members

Posted 06 December 2012 - 01:29 AM

The community is split between the older guys saying "why don't you just make an installer" and the newer folks saying "I want a single executable that works on all WinXP machines regardless". Personally I like the latter when doing mini-projects that I may want to distribute to a small volume of people. I would hardly install a simple modelviewer, I would sure want one that is a single exe, no installs required.

### #5/ ProDevGURU   Members

Posted 06 December 2012 - 02:47 AM

Excuse me but wtf? What is this doing with DirectX 9.0a?

### #6kubera  Members

Posted 06 December 2012 - 03:10 AM

Hi!

The old versions of DirectX has been removed from Mirosoft's servers.

I had the same problem. They would answer such question, but they rather do not publish them...
I aksed Chuck Waolburn, an expert at MS and he has suggested a newer version.
You would search the SDK through the Internet or ask someone only.

### #7Tispe  Members

Posted 06 December 2012 - 03:20 AM

Excuse me but wtf? What is this doing with DirectX 9.0a?

The only reason I can think of to use the 2003 SDK for is to build a release that works for all early WinXP releases. The only way to get a 2012 SDK to work on the early WinXP releases is to accompny your program with an installer packed with redistibutables.

Edited by Tispe, 06 December 2012 - 03:21 AM.

### #8kubera  Members

Posted 06 December 2012 - 03:29 AM

I am not sure, but WinXP SP2 is required from DIrectX June 2010 (because of Visual C++ 2010 runtime).
You would find something newer, that will be able to work on such platform.

### #9/ ProDevGURU   Members

Posted 06 December 2012 - 03:40 AM

No this is not my problem. I'm reverse engenering program which was compiled with this SDK so that's way I need it.

You would search the SDK through the Internet or ask someone only.

Hwo to ask ? Any ideas ?

### #10kubera  Members

Posted 06 December 2012 - 04:05 AM

I searched my bakcup CDs, I do not have it.

### #11/ ProDevGURU   Members

Posted 06 December 2012 - 04:18 AM

Why you think I have colleagues?

Anyway if somebody have this SDK I'll be glad if he/she upload it and send me the link.

### #12kubera  Members

Posted 06 December 2012 - 04:22 AM

It is rather a different version of DX, but I have a legacy DirectX9 without "a" suffix.
If you need it, please let me know.

### #13/ ProDevGURU   Members

Posted 06 December 2012 - 09:23 AM

Thank you but I already have it (from one chinese site) and actually there're some mistmatches with the SDK used and this one. I'll show what actually I need defined:

class SYS_DI_ADAPTER
{
public:
SYS_DI_ADAPTER(DIDEVICEINSTANCEA const &, SYS_DI *, SYS_ERROR &);

SYS_ERROR GetSettings(SYS_DI_DEVICE_SETTINGS &);
SYS_ERROR SetSettings(SYS_DI_DEVICE_SETTINGS &);
SYS_DI_ADAPTER_OBJECT * FindObject(unsigned long, unsigned long)const;

private:
SYS_ERROR RegOpenKeyA(bool,HKEY &);
SYS_ERROR SetSettings_Registry(SYS_DI_DEVICE_SETTINGS &);
SYS_ERROR GetSettings_Registry(SYS_DI_DEVICE_SETTINGS &);
SYS_ERROR GetSettings_Default(SYS_DI_DEVICE_SETTINGS &);
static int __stdcall DIEnumDeviceObjectsCallback(DIDEVICEOBJECTINSTANCEA const *,void *);
static int __stdcall DIEnumDeviceEffectsCallback(DIEFFECTINFOA const *, void *);

public:
DIDEVICEINSTANCEA m_0; //size 580
DIDEVCAPS m_588; //size 44
} ; //size of 636
class SYS_DI
{
public:
SYS_DI(SYS_COMMAND_LINE const &,HWND,SYS_ERROR &);
SYS_ERROR Create();
void CloseDevices();

SYS_ERROR Setup_Playback(char *);
SYS_ERROR Setup_Recording(char *);
SYS_ERROR CreateDI();
SYS_ERROR EnumDevices();
static int __stdcall DIEnumDevicesCallback(DIDEVICEINSTANCEA const *, void *);

SYS_COMMAND_LINE const & m_0; //size 4
HWND m_4; //size 4
BYTE m_8;
BYTE m_9;
HMODULE m_12; //size 4
HRESULT (*m_16)(
HINSTANCE hinst,
DWORD dwVersion,
REFIID riidltf,
LPVOID * ppvOut,
LPUNKNOWN punkOuter
); //size 4
LPDIRECTINPUT8A m_20; //size 4
unsigned char m_256;
unsigned char m_257;
HANDLE m_260; //size 4
HANDLE m_264; //size 4
} ;
{
SYS_ERROR result = SYS_ERROR_UNKNOWN;
__try {
LPDIRECTINPUTDEVICE8A v0 = 0;
if(a0->m_20->CreateDevice(m_4, &v0, 0)>=0)
{
DIDATAFORMAT tDat;
tDat./*m_24*/ = 24; //offset HERE!!!!!!!!!!!!!!!!
tDat.dwSize = sizeof(DIDATAFORMAT);
tDat.dwObjSize = sizeof(DIOBJECTDATAFORMAT);
tDat.dwFlags = 0;
tDat.dwDataSize = 0;
tDat.dwNumObjs = 0;
tDat.rgodf = NULL;
if(v0->SetDataFormat(&tDat)>=0)
{
if(v0->SetCooperativeLevel(a0->m_4, DISCL_EXCLUSIVE | DISCL_FOREGROUND)>=0)
{
memset(&m_588, 0, sizeof(DIDEVCAPS));
m_147 = sizeof(DIDEVCAPS);
if(v0->GetCapabilities(&m_588)>=0)
{
if(v0->EnumObjects(&DIEnumDeviceObjectsCallback, this, DIDFT_ALL)>=0)
{
sysDXListReverse(m_580);
if(v0->EnumEffects(&DIEnumDeviceEffectsCallback, this, DIDFT_ALL)>=0)
result = SYS_ERROR_NO;
}
}
}
}
}
RELEASE(&v0);
}
__except(1){}
return result;
}


So what is this the DIDATAFORMAT structure is with 24 bytes size but the program code is trying to access the element in it at 24 offset (this mean there need to be one extra member). Is this defined only in DirectX 9.0a but not in DirectX 9.0?

And the other strange thing is this http://www.gamedev.net/topic/634619-enum-d3dformat-problem/. Where is these format defined? Actually there isn't such an enumeration member in DirectX 9.0. The program ReadMe file says that it was used DirectX 9.0a. So that's way I think this is my problem.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.