2009/12/24 Jay Tennant <[email protected]>: > There could be an additional dll that mediates between the program and > gfx_directx.dll. I think it's just easier to use the static linking. The best > solution would be to remove the d3dx dependency altogether by building an > alternative to ID3DXFont and D3DXSaveSurfaceToFile().
Oh, that's the extent of it? Well, we don't need the fps display, we already have ctrl+~. >> From: "Mike Caron" <[email protected]> >> Sent: Wednesday, December 23, 2009 6:56 AM >> >> http://blogs.msdn.com/oldnewthing/archive/2005/02/14/372266.aspx >> >> That was a pain in the butt to find :/ >> >> Anyway, read the comments too. >> >> -- >> Mike Caron >> >> -----Original Message----- >> From: "Mike Caron" <[email protected]> >> Date: Wed, 23 Dec 2009 12:38:50 >> To: <[email protected]> >> Subject: Re: [Ohrrpgce] Problem starting gfx_directx >> >> Shit, you replied after I left, and thus I can't link pertinent docs. >> >> Anyway, if DyLibLoad etc aren't working the way I mention, it's because FB >> is mangling it's wrapper around LoadLibrary or whatever the Win32 function >> is called. >> >> And, the flag you're talking about is deprecated, and when used is a ticking >> time bomb. Specifically it will blow up when you try to resolve any symbols >> in those dependencies! >> >> Google "old new thing DLL DEPENDENCIES" or something like that (no quotes), >> to find the relevant page on The Old New Thing. >> >> -- >> Mike Caron >> >> -----Original Message----- >> From: Ralph Versteegen <[email protected]> >> Date: Thu, 24 Dec 2009 01:30:38 >> To: <[email protected]> >> Subject: Re: [Ohrrpgce] Problem starting gfx_directx >> >> 2009/12/24 Mike Caron <[email protected]>: >> > Ralph Versteegen wrote: >> >> >> >> 2009/12/23 Jay Tennant <[email protected]>: >> >>>> >> >>>> From: Ralph Versteegen <[email protected]> >> >>>> Sent: Tuesday, December 22, 2009 10:35 PM >> >>>> 2009/12/23 James Paige <[email protected]>: >> >>>>> >> >>>>> I was just testing out a windows build with gfx_directx gfx_sdl on a >> >>>>> computer with directx 9.0c installed (according to dxdiag). When I run >> >>>>> game.exe it says: >> >>>>> >> >>>>> "This application has failed to start because d3dx9_41.dll was not >> >>>>> found. Re-installing the application may fix this problem." >> >>>>> >> >>>>> When I click okay on it, then game.exe starts up okay falling back on >> >>>>> gfx_sdl >> >>>>> >> >>>>> Any idea why this might happen? >> >>>>> >> >>>>> --- >> >>>>> James Paige >> >>> >> >>> d3dx9_41.dll is one of many dll's that microsoft has released to patch >> >>> the d3dx library. A solution to this would be obtaining the latest dx >> >>> runtime on your computer, available at: >> >>> >> >>> http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&displaylang=en >> >>> >> >>> An alternative would be compiling the backend with static linking the >> >>> d3dx library, which was available in the december 2004 dx sdk. This will >> >>> remove dependencies, but will increase the dll size by about 500kb. >> >>> >> >>>> That's interesting, I was under the impression that loading >> >>>> gfx_directx.dll would silently fail if its dependencies weren't >> >>>> available. Luckily, it's quite simple to check in backends.bas whether >> >>>> d3dx9_41.dll (the august 2009, I think, release of the Direct3D 9 >> >>>> utility library) is present before attempting to load gfx_direct.dll, >> >>>> and I was originally planning to do. >> >>> >> >>> It's present in March 2009. I was trying to manually remove all >> >>> dependencies, but got stuck with the screenshot and font algorithms. >> >>> >> >>> I'll upload a version of gfx_directx that has no dependencies in a few >> >>> minutes, though 500kb larger. >> >> >> >> We ought to have some way to detect whether or not the dll has been >> >> statically linked to d3dx9 or not. Would it be possible to set the >> >> version number (the one seen in a the file browser) and read it >> >> somehow? >> > >> > I haven't looked at this backend at all, so I don't know if this is already >> > done, but the standard way of doing this (on Windows, at least) is >> > something >> > like this: >> > >> > hModule = DyLibLoad("gfx_directx.dll") >> > hFunction = DyLibSymbol(hModule, >> > "some_function_that_exists_in_d3dx9_41_dll") >> > >> > if hFunction != 0 then >> > 'd3dx9_41.dll is statically linked >> > end if >> > >> > DyLibFree(hModule) >> > >> > -- >> > Mike >> >> Well that won't work, because surprisingly windows pops up a message >> box when the dependency is missing >> >> However, I saw a winapi function to load a dll without resolving its >> dependencies (for the purposes of loading resources), probably that >> can be used in the way you described. > > > _______________________________________________ > Ohrrpgce mailing list > [email protected] > http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org > _______________________________________________ Ohrrpgce mailing list [email protected] http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
