Jump to content

  • Log In with Google      Sign In   
  • Create Account

#ActualProgrammerDX

Posted 13 February 2013 - 03:28 AM

I resolved the problem.

 

It appears that for the June 2010 SDK (d3dx9_43.dll) and the one before that, Feb 2010 (d3dx9_42.dll), just supplying these dll's in the redistribute files to the end user is not enough to ensure that Effect class can be used.

 

Initially I believed supplying only the Jun2010_d3dx9_43_x86.cab redistribute file to the end user was enough. But for the mentioned SDKs it's not enough (special cases).

 

You need to supply all the Jun2010_*.cab files. (The one important to fix bug in this topic is Jun2010_D3DCompiler_43_x86.cab file)

 

So what I do now is just supply all the Jun2010_*.cab files as found in the \Microsoft DirectX SDK (June 2010)\Redist\   to the end-user. And the DSETUP.dll, dsetup32.dll, DXSETUP.exe, dxupdate.cab also found in that folder.

 

Then, force the client to execute DXSETUP.exe (to install the redist files) if LoadLibrary("d3dx9_43.dll") fails (test that in a launcher or something before running the actual game .exe).

 

So it was just a matter of not supplying all the right redistribute files to the end user because of a misunderstanding.

 

Problem is that it's not properly documented in MSDN and that there's no proper error message inside the function to tell you some files on the system are missing.


#3ProgrammerDX

Posted 13 February 2013 - 03:26 AM

I resolved the problem.

 

It appears that for the June 2010 SDK (d3dx9_43.dll) and the one before that, Feb 2010 (d3dx9_42.dll), just supplying these dll's in the redistribute files to the end user is not enough to ensure that Effect class can be used.

 

Initially I believed supplying only the Jun2010_d3dx9_43_x86.cab redistribute file to the end user was enough. But for the mentioned SDKs it's not enough (special cases).

 

You need to supply all the Jun2010_*.cab files. (The one important to fix bug in this topic is Jun2010_D3DCompiler_43_x86.cab file)

 

So what I do now is just supply all the Jun2010_*.cab files as found in the \Microsoft DirectX SDK (June 2010)\Redist\   to the end-user. And the DSETUP.dll, dsetup32.dll, DXSETUP.exe, dxupdate.cab also found in that folder.

 

Then, force the client to execute DXSETUP.exe (to install the redist files) if LoadLibrary("d3dx9_43.dll") fails (test that in a launcher or something before running the actual game .exe).

 

So it was just a matter of not supplying all the right redistribute files to the end user because of a misunderstanding.


#2ProgrammerDX

Posted 13 February 2013 - 03:25 AM

I resolved the problem.

 

It appears that for the June 2010 SDK (d3dx9_43.dll) and the one before that, Feb 2010 (d3dx9_42.dll), just supplying these dll's in the redistribute files to the end user is not enough to ensure that Effect class can be used.

 

Initially I believed supplying only the Jun2010_d3dx9_43_x86.cab redistribute file to the end user was enough. But for the mentioned SDKs it's not enough (special cases).

 

You need to supply all the Jun2010_*.cab files. (And, for Effect files to resolve this error that this topic was about, most importantly Jun2010_D3DCompiler_43_x86.cab file)

 

So what I do now is just supply all the Jun2010_*.cab files as found in the \Microsoft DirectX SDK (June 2010)\Redist\   to the end-user. And the DSETUP.dll, dsetup32.dll, DXSETUP.exe, dxupdate.cab also found in that folder.

 

Then, force the client to execute DXSETUP.exe (to install the redist files) if LoadLibrary("d3dx9_43.dll") fails (test that in a launcher or something before running the actual game .exe).

 

So it was just a matter of not supplying all the right redistribute files to the end user because of a misunderstanding.


#1ProgrammerDX

Posted 13 February 2013 - 03:25 AM

I resolved the problem.

 

It appears that for the June 2010 SDK (d3dx9_43.dll) and the one before that, Feb 2010 (d3dx9_42.dll), just supplying these dll's in the redistribute files to the end user is not enough to ensure that Effect class can be used.

 

Initially I believed supplying only the Jun2010_d3dx9_43_x86.cab redistribute file to the end user was enough. But for the mentioned SDKs it's not enough (special cases).

 

But it's not so. You need to supply all the Jun2010_*.cab files. (And, for Effect files to resolve this error that this topic was about, most importantly Jun2010_D3DCompiler_43_x86.cab file)

 

So what I do now is just supply all the Jun2010_*.cab files as found in the \Microsoft DirectX SDK (June 2010)\Redist\   to the end-user. And the DSETUP.dll, dsetup32.dll, DXSETUP.exe, dxupdate.cab also found in that folder.

 

Then, force the client to execute DXSETUP.exe (to install the redist files) if LoadLibrary("d3dx9_43.dll") fails (test that in a launcher or something before running the actual game .exe).

 

So it was just a matter of not supplying all the right redistribute files to the end user because of a misunderstanding.


PARTNERS