| |
| |
|
|
About the Proxy-Dll Concept -- Section: Proxy-Dll --
To obtain DirectX functionality, an application needs to load certain dynamic link libraries (dlls), e.g. d3d8.dll (d3d9.dll respectively). A "proxy-dll" names exactly like a dll in question and manages to get loaded by the app instead of the "real, original" one. Once loaded, the proxy loads the "real" dll by itself and passes all calls from the application on to it.
So, a "filter" is installed between the application and its calls to regular dll functions. Obviously, new own functionality can be added now when intercepting (even altering/faking) certain function calls.
By the way, this concept is very similar to one used by a Microsoft DirectX programming utility, named D3DSpy. Quote from the D3DSpy help file (DX9 here):
| D3DSpy works by providing a proxy DLL, which the application connects to and treats like the real D3D9.DLL. It intercepts all the calls and gathers various information before making the real D3D call. |
The proxy-concept doesn't work with all applications due to several reasons. It has to be tested thoroughly with an application (game) before making it available to a wider range of users.
There are other approaches on how to draw own stuff in a DirectX application (like "run-time code-injection", or even altering the code of an executable file). In case the proxy-dll concept doesn't work for you, you may want to look for one of those (see here, too).
|
|
|
|
|
| |