Jump to content
  • Advertisement
Sign in to follow this  
Samuraigamer

Directx 9.0b --- 9.0c MISSION IMPOSSIBLE

This topic is 4638 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

OMFG retarted directx! i have directx9.0b and i installed a new game that requires 9.0c.it asked me if i wanted to install the 9.0c after the istallation and i said ok.it finished immediately and said that 'directx installed' or smth like that.ofcouse it didnt install it.i go to start>run>dxdiag and still i have the 9.0b version.i downloaded directx9.0c so i could install it myself and EVERY FREAKIN' time it says that it installed it without actually doing so.so the outcome is: when i start Lineage it says 'Please Install directx 9.0c or later' .the BRAINIACS at microsoft NATURALLY dont have an uninstallation (hey whats that?) process for their achievment.so what am i supposed to do? FORMAT?Reinstall Windows which now work so *lovely* ?start erasing directx files from c:/windows/system & system32 and then MAYBE then istallation of 9.0c begin??? Directx; makes me feel like a pc newbie allover again.and that was 10 years ago P.S I getting ahead of u : everything works fine on my pc,i dont have a problem with drivers and such P.S Sorry about the language.i 'm usually a very lovely person ;) but i am SO FURIUS r8 now thx in advance

Share this post


Link to post
Share on other sites
Advertisement
Does this have anything to do with programming?

BTW, I'm pretty sure that DirectX 9.x creates a system restore point before installing, so you may be able to do a roll-back and try again.

Also, try installing while in safe mode.

PS: I'm assuming your using windows XP.

Share this post


Link to post
Share on other sites
Yeah i have WindowsXp.I tried the safe Mode idea but didnt work.The Roll-back is chaotic since directx is 1 of the 1st things i install when i have a fresh installation of windows.if i do it it will take me way back,and i ll have to reinstall evertything from the begging (there goes my day well spent).without being sure i think that Service pack2 installs directx9.b.so a roll-back will isnt a realistic option.

P.S sorry i didnt realize this was a programming forum or so.Rest asure I ll pm the moderator to erase the thread when solve this problem.
P.S2 How the hell did microsoft managed to screw this one SOOOOOOO badly?

Share this post


Link to post
Share on other sites
Quote:

P.S Sorry about the language.i 'm usually a very lovely person ;) but i am SO FURIUS r8 now


I don't really see that as too much of an excuse. Hurling insults everywhere and blaming everybody but yourself for a problem isn't likely to get you much just. Just calm down, take a deep breath, and give your post a bit more consideration.

That said:
I see an uninstall option for the DirectX SDK on every one of my computers right now, under Add-Remove Programs in the control panel. This MAY be because its the SDK and not just the runtime. But it sounds like if you have dxdiag you probably have the SDK installed? Maybe not.

I do recall having trouble installing a newer SDK version over an older one without uninstalling the older one first.

What didn't work about safe mode?

Share this post


Link to post
Share on other sites
Hi,

@Samuraigamer:

I've been a victim to this "directx 9.0b to 9.0c" anomally. What worked for me was that I uninstalled service pack 2 (I'm using Win XP Professional by the way) so it was the original Windows again and installed directx 9.0c and after it installed, I put back service pack 2. If you try to search in google, you'll see that a lot of people have this problem as well and they propose different solutions which not surprisingly, don't work for everyone's system. If this method didn't worked for you, search for the others' cause I can't guarantee that this will work on your system as well but I am hoping that it will since I have gone through this problem too so I know how frustrating it is.

cannot install directx9.0c

directx9.0b to directx9.0c

Share this post


Link to post
Share on other sites
DirectX doesn't come with an uninstaller because it's a core system component. It would be like trying to uninstall explorer.exe.

Share this post


Link to post
Share on other sites
This seems to be a possible solution.

If that fails, though, you could try a windows repair with your windows installation CD -- I recommend that you slipstream SP2 first: instructions here or here (Beginning Users section, ignore steps 3 and 4).

A windows repair is done like this:
- Boot from your Windows XP CD (make sure it's an installation CD, not a recovery CD/DVD) and let it run though its startup, until you get to a menu.
- Press ENTER for Windows installation. No, it's not R.
- Press F8 to agree to the EULA.
- It will now search for previous versions. When you get to an OS selection screen, select your OS (there should be only one) and press R for a Windows Repair. If R is unavailable, then you are probably not using the same edition installation CD as the local installation.
- After that it should take 45 minutes to an hour to finish.
- When you restart the computer, the first thing to do is install all recent windows updates (as anything more recent than what is on the installation CD will no longer be installed).
- You should then be able to install DX9.0c. If you slipstreamed SP2, then DX9.0c should already be installed.

Note that a Windows Repair will keep your data, but as with any major operation dealing with system files, it's a good idea to have a backup. Although I've never had a problem that was not hardware-based.


Good luck.

jfl.

Share this post


Link to post
Share on other sites
Ok guyz,thx for all the help.problem solved (if a windows user can ever make such a claim).what worked for me was the uninstallation of Service pack 2 as the Black Wind suggested (yeah i know what KuroKage means ^^),and installation of 9.0c afterwards.

Jpetrie : i dont see how u were offended by my 'insults'. did i insult u? the community of the forum?hurled insults everywhere? why blame myself? for not being a better programmer than microsoft's wizards? My KI is in harmony dont worry.anyway thank u too for the input,u 've helped nevertheless. btw,i dont know what SDK is (omfg what a newbie this samurai-guy is).

Superpig : yes thats correct.it a system component.but do u actually think what happend to me is normal in ANY way?is it normal not to be able to update your directx version? microsoft could have made some uninstallation proccess of some kind for directx especially for situtions like that.i remember a few years back some team succeded in uninstalling Internet explorer,which supposedly was a Crucial part of Windows installation (and still *is*).


P.S maybe this thread is outside the bounds of this site,i dont know cause i didnt bother indulging into it.if ya wanna delete it ,i ll gladly pm the moderator to do so.or i can leave it to possibly help some1 else
P.S.2 jfl damn gj !

Share this post


Link to post
Share on other sites
hello

i m having trouble with the function D3DXCreateFont. it generates an exception in the program. and maybe that is because of the device i supply as the arguement but i cant seem to find the problem... please guide me what maybe the problem... here is some of the source code

P.S: i m using an Radeon X800. are there any compliance faults?

void c_D3DLayer::CreateGraphics ( HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWORD Flags )
{
if ( !(this->hMainWindow) )
this->hMainWindow = hWnd;

D3DPRESENT_PARAMETERS sd3dpp;
memset ( &sd3dpp, 0, sizeof D3DPRESENT_PARAMETERS );

sd3dpp.BackBufferCount = 1;

if ( dwWidth )
sd3dpp.BackBufferWidth = dwWidth;
else
sd3dpp.BackBufferWidth = 1024;

if ( dwHeight )
sd3dpp.BackBufferHeight = dwHeight;
else
sd3dpp.BackBufferHeight = 768;

if ( Flags & FD3DLAYERFLAGS_BPP32 )
sd3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
else if ( Flags & FD3DLAYERFLAGS_BPP24 )
sd3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
else if ( Flags & FD3DLAYERFLAGS_BPP16 )
sd3dpp.BackBufferFormat = D3DFMT_R5G6B5;
else
{
sd3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
}

if ( Flags & ( FD3DLAYERFLAGS_ZBUFFER | FD3DLAYERFLAGS_HIRESZBUFFER ) )
{
sd3dpp.EnableAutoDepthStencil = TRUE;

if ( Flags & FD3DLAYERFLAGS_HIRESZBUFFER )
{
if ( Flags & FD3DLAYERFLAGS_STENCIL )
sd3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
else
sd3dpp.AutoDepthStencilFormat = D3DFMT_D32;
}
if ( Flags & FD3DLAYERFLAGS_ZBUFFER )
{
if ( Flags & FD3DLAYERFLAGS_STENCIL )
sd3dpp.AutoDepthStencilFormat = D3DFMT_D15S1;
else
sd3dpp.AutoDepthStencilFormat = D3DFMT_D16;
}
}
else
{
sd3dpp.EnableAutoDepthStencil = FALSE;
}

sd3dpp.Windowed = FALSE;
sd3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
sd3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;

sd3dpp.hDeviceWindow = (this->hMainWindow);

sd3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
sd3dpp.Flags = D3DPRESENTFLAG_LOCKABLE_BACKBUFFER;

sd3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
sd3dpp.MultiSampleQuality = 0;

D3DDEVTYPE DevType = D3DDEVTYPE_HAL;

if ( Flags & FD3DLAYERFLAGS_FORCEHARDWARE )
DevType = D3DDEVTYPE_HAL;
else if ( Flags & FD3DLAYERFLAGS_FORCEREFERENCE )
DevType = D3DDEVTYPE_REF;

this->InitD3dFullscreen ( dwWidth, dwHeight, &sd3dpp, DevType );
}

void c_D3DLayer::InitD3dFullscreen ( DWORD dwWidth, DWORD dwHeight, D3DPRESENT_PARAMETERS *sd3dpp, D3DDEVTYPE DevType )
{
if ( this->Graphics )
return;

HRESULT r = 0;

this->lpd3d9 = Direct3DCreate9 ( D3D_SDK_VERSION );

if ( !(this->lpd3d9) )
{
MessageBox ( this->hMainWindow, "Cannot Initiate Direct3D ( Direct3DCreate9 )", "ERROR", MB_OK );
return;
}

r = this->lpd3d9->CreateDevice ( D3DADAPTER_DEFAULT,
D3DDEVTYPE_HAL,
this->hMainWindow,
D3DCREATE_SOFTWARE_VERTEXPROCESSING /*| D3DCREATE_PUREDEVICE*/,
sd3dpp,
&(this->lpd3ddevice9) );

if ( FAILED ( r ) )
{
MessageBox ( this->hMainWindow, "Cannot CreateDevice", "ERROR", MB_OK );
return;
}

//a RECT structure for the srceen dimensions may come
RECT ScreenRect = { 0, 0, dwWidth, dwHeight };

r = this->lpd3ddevice9->GetBackBuffer ( 0, 0, D3DBACKBUFFER_TYPE_MONO, &(this->lpframebuffer ) );
if ( FAILED ( r ) )
{
MessageBox ( this->hMainWindow, "Cannot get screen buffer", "ERROR", MB_OK );
this->DestroyAll ( );
PostMessage ( this->hMainWindow, WM_QUIT, 0, 0 );
}
}

void c_D3DLayer::DrawString ( DWORD x, DWORD y, D3DCOLOR color, const CHAR* str )
{
HRESULT r = 0;

if ( !(this->lpframebuffer) )
return;

DWORD Count = -1;
LPD3DXFONT lpd3dfont = NULL;
HFONT hFont = (HFONT)GetStockObject ( SYSTEM_FONT );

r = D3DXCreateFont ( /*NULL*/lpd3ddevice9, hFont, &lpd3dfont );

MessageBox ( this->hMainWindow, "", "", MB_OK );
if ( FAILED ( r ) )
{
return;
}

RECT TextRect = { x, y, x + 1, y + 1 };

lpd3dfont->Begin ( );

//Calculating rectangle for the text
lpd3dfont->DrawTextA ( str, Count, &TextRect, DT_CALCRECT, 0 );

lpd3dfont->DrawTextA ( str, Count, &TextRect, DT_LEFT, color );

lpd3dfont->End ( );

lpd3dfont->Release( );
}

Share this post


Link to post
Share on other sites
@Safiullah: You should make a new thread about this.
And [ source lang="cpp] [/ source] tags drastically improve readability of long source code postings.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!