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

Reply via email to