Adv

12/30/2009

Simplest way to fix "No D3DX9 dll" with MPC-HC on Windows 7

There is a bug in MPC-HC in Windows 7, and you may get the following error message when everytime it play a video.

No D3DX9 dll found. To enable statsshaders and complex resizersplease make sure to install the latest DirectX End-User Runtime


You may find other on the web / youtube tell you to download a copy of DirectX 9. But actually, you don't have to.

Step 1. open "C:\Program Files\MPC HomeCinema" with your explorer.
Step 2. Make a copy "ANY" of dll (e.g. mpcresources.fr.dll)
Step 3. Rename the duplication dll to "d3dx9_41.dll"

And you should not get the error message anymore.

Why it is simple than other?
The MPC-HC try to load the DLL into memory. It locate the file "d3dx8_41.dll" from path. However, on Windows 7 there is no DirectX 9 but DirectX 10  and it should load "d3dx10_40.dll" on directx.

It find the DLL cannot be loaded, then popup a message to notify you, and play the video.

The fact is that, MPC-HC is not required to load it again as it should be loaded already by system. By putting a dummy DLL to the path to bypass the checking is enough as no API will be used.

In short, MPC-HC use the wrong way to check and to ensure the minimum version of DirectX installed. It should load "d3d9.dll" and check the build number in the assembly or in the registry.

------------

UPDATE: June 2010

I am not sure if MPC or Win7 have fix the issue.

There should no the popup any more by update both of them to the latest.

If you have did my fix on the above, you can just delete the file and everythings work fine.

20 則留言:

amnisia 說...

Thanks for the tip. Worked fine :)

Charlie 說...

Had the same problem with Vista. I used your suggestion and it worked great. Thanks for the tip.

as 說...

much better solution than other

Mitchell 說...

Great solution! Thank you so much!

mindblitz 說...

No, unfortunately did not work.

Dennis 說...

How could it possible?? What steps did you do?

no name 說...

Thanks, worked great.

Elaine 說...

Your suggestion works like a charm and so easily. Thanks very much.

mo 說...

Thank you it worked splendidly

Arion 說...

Worked like a charm!

yozas 說...

stupid solution. if you do it this way you are only fooling yourself, for example Renderer settings > Display stats doesn't work

Dennis 說...

I did not notice that before your comment. But I guess that is not important to many users.

Vince 說...

Thanks, this is the best and simplest fix I have seen.

DantheMan 說...

Awesome fix worked like a charm tyvm

DantheMan 說...

BTW I tried to enable Renderer settings > Display Stats both with and without the fake dll with the same results the option doesn't do anything for me :S

Watchdog 說...

Works fine. Thanks for sharing your knowledge!

new version 說...

It`s no working with the newest version MPC 1.3.2051.0!
in Win 7..., player works fine.

Mike from Spain 說...

Works fine with latest version of MPC-HC.

Good job!

James 說...

Very nice elegant if sneaky fix :)
Works a treat! Thanx heaps.

rhj 說...

works fine on W7-64bit ultimate.
Many Thanks.