Closed HerMajestyDrMona closed 7 years ago
Mmh. The error should be made more noticable, I agree. Could display an error messagebox instead of just silently writing a log message ...
I noticed that before commit: "Clean up code" ( https://github.com/crosire/d3d8to9/commit/9eb8faa14737aa22619b02d7ae0c6b0491b4eca6 ) When I added d3dx9.lib to additional dependencies, and file "C:\Windows\SysWOW64\D3DX9_43.dll" was missing - it still displayed an error that it's unable to start the application because d3dx9_43.dll is missing. So I suppose that one of those cleaning changes "fixed" it. Do you maybe know what change could cause it? Maybe I could add some unused function to the code, something to force d3dx9_43.dll loading? I don't know anything about DirectX API, so I would very appreciate any recommendation. I think system errors are better than message boxes created by a .dll file (when a .dll file is missing then some Windows process displays the error, not the app itself),
This was changed in and because of #16.
You're right. I double checked it. Seems like I was testing in a wrong folder and I thought it already had https://github.com/crosire/d3d8to9/pull/16 :) I'll see if I can revert this change later, or at least add a workaround.
I would not recommend reverting change #16. Instead you could add two lines to d3d8to9.cpp
after this line:
LOG << "Failed to load d3dx9_43.dll! Some features will not work correctly." << std::endl;
Add these lines:
MessageBox(nullptr, TEXT("Failed to load \"d3dx9_43.dll\"!"), nullptr, MB_ICONWARNING);
return nullptr;
That should do what you want.
Thank you. Seems like this solution is acceptable too :) I made more detailed error message with MB_OKCANCEL, and also ShellExecute with: https://www.microsoft.com/en-us/download/details.aspx?id=8109 when user clicks "OK". It opens the site where the missing "End-User Runtime" can be downloaded.
Closed in #23.
Hello. After the last changes, the converter doesn't longer throw an error when "d3dx9_43.dll is missing", when users don't install required DirectX 9 SDKs. In some games it causes graphics bugs like missing/deformed textures: http://i.imgur.com/KwbVZLA.jpg I would rather want to see an error on game start, than experiencing graphics bugs. Is there any option to force d3dx9_43.dll loading, just as it used to be in previous versions of d3d8to9? I tried adding d3dx9.lib to additional dependencies, but it doesn't seem to help (still not "missing .dll" error).