Hi all,
I want to run a program that needs d3d8.dll. Using winedump I see there are only 5 functions exported.
So what would the way to do a stub dll ? If this is already in documentation, don't worry. My docbook doesn't functions with the doc (bug 688)
Send file or link.
Thanks.
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
"=?iso-8859-1?q?Sylvain=20Petreolle?=" == =?iso-8859-1?q?Sylvain=20Petreolle?= <iso-8859-1> writes:
=?iso-8859-1?q?Sylvain=20Petreolle?=> Hi all, I want to run a program =?iso-8859-1?q?Sylvain=20Petreolle?=> that needs d3d8.dll. Using =?iso-8859-1?q?Sylvain=20Petreolle?=> winedump I see there are only 5 =?iso-8859-1?q?Sylvain=20Petreolle?=> functions exported.
=?iso-8859-1?q?Sylvain=20Petreolle?=> So what would the way to do a stub =?iso-8859-1?q?Sylvain=20Petreolle?=> dll ? If this is already in =?iso-8859-1?q?Sylvain=20Petreolle?=> documentation, don't worry. My =?iso-8859-1?q?Sylvain=20Petreolle?=> docbook doesn't functions with the =?iso-8859-1?q?Sylvain=20Petreolle?=> doc (bug 688)
Why can't you run the dll as native one?
I want to run a program that needs d3d8.dll. Using winedump I see there are only 5 functions exported.
Yes, but if the program really needs D3D8, just stubbing these function will not help you much... The problem is that D3D (and the whole DirectX) is implemented using COM : there is only a bunch of functions exported from the DLL but that hides a LOT of code as function pointers in the COM object.
So it's definitely NOT trivial to stub (except if you plan to return 'not supported' :-) ).
Lionel
So it's definitely NOT trivial to stub (except if you plan to return 'not supported' :-) ).
Lionel Ulmer - http://www.bbrox.org/
It's exactly what I want to do - for now the program crashes at 0xdeadbeef. I would just get the message 'xxx unsupported' instead of crash. Jesus, with winedump I only saw 5 exports - if I have the method that's defininitevly not a huge work ;))
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
On Wed, Jun 19, 2002 at 12:45:50AM +0200, Sylvain Petreolle wrote:
So it's definitely NOT trivial to stub (except if you plan to return 'not supported' :-) ).
Lionel Ulmer - http://www.bbrox.org/
It's exactly what I want to do - for now the program crashes at 0xdeadbeef. I would just get the message 'xxx unsupported' instead of crash. Jesus, with winedump I only saw 5 exports - if I have the method that's defininitevly not a huge work ;))
Well, why not just think instead of asking ? ;-) Any of those patches "added dll XXX" would do... (CVS notification does include patch URLs for review)
Le mer 19/06/2002 à 12:25, Andreas Mohr a écrit :
On Wed, Jun 19, 2002 at 12:45:50AM +0200, Sylvain Petreolle wrote:
So it's definitely NOT trivial to stub (except if you plan to return 'not supported' :-) ).
Lionel Ulmer - http://www.bbrox.org/
It's exactly what I want to do - for now the program crashes at 0xdeadbeef. I would just get the message 'xxx unsupported' instead of crash. Jesus, with winedump I only saw 5 exports - if I have the method that's defininitevly not a huge work ;))
Well, why not just think instead of asking ? ;-) Any of those patches "added dll XXX" would do... (CVS notification does include patch URLs for review)
He'll have the output, but not the method or the tools to do such a thing on another dll. If I give you a Caramilk, you won't necessarily be able to put some caramel inside it. Bad analogy, but you should get the point.
Vincent
On 2002.06.18 18:45 Sylvain Petreolle wrote:
So it's definitely NOT trivial to stub (except if you plan to return 'not supported' :-) ).
Lionel Ulmer - http://www.bbrox.org/
It's exactly what I want to do - for now the program crashes at 0xdeadbeef. I would just get the message 'xxx unsupported' instead of crash. Jesus, with winedump I only saw 5 exports - if I have the method that's defininitevly not a huge work ;))
Hey Sylvain,
I did some initial work implementing a stup ctl3d.dll (which I intend to get back to, honest!). I found the 'IMPLEMENTING A NEW DLL' section of DEVELEPORS-HINTS to be a good starting point. According to Alexandre, this file is grossly outdated and 'real' documentation will be written eventually. Until then, I reckon DEVELOPERS-HINTS is better than a poke in the eye...
Happy Hacking, Ian
Ian D. Stewart wrote:
I did some initial work implementing a stup ctl3d.dll (which I intend to get back to, honest!). I found the 'IMPLEMENTING A NEW DLL' section of DEVELEPORS-HINTS to be a good starting point. According to Alexandre, this file is grossly outdated and 'real' documentation will be written eventually. Until then, I reckon DEVELOPERS-HINTS is better than a poke in the eye...
Of course, someone that is not familiar with the process, and works through the documentation keeping notes on what the problems in the docs are, would be in an ideal position to provide corrections...
On 2002.06.19 15:27 Duane Clark wrote:
Ian D. Stewart wrote:
I did some initial work implementing a stup ctl3d.dll (which I intend to get back to, honest!). I found the 'IMPLEMENTING A NEW DLL' section of DEVELEPORS-HINTS to be a good starting point. According to Alexandre, this file is grossly outdated and 'real' documentation will be written eventually. Until then, I reckon DEVELOPERS-HINTS is better than a poke in the eye...
Of course, someone that is not familiar with the process, and works through the documentation keeping notes on what the problems in the docs are, would be in an ideal position to provide corrections...
I actually started doing that (search through the wine-patches archives for references to DEVELOPERS-HINTS) and Alexandre basically said don't bother, so I stopped submitting patches.
Ian
It's exactly what I want to do - for now the program crashes at 0xdeadbeef. I would just get the message 'xxx unsupported' instead of crash. Jesus, with winedump I only saw 5 exports - if I have the method that's defininitevly not a huge work ;))
Well, just look at, for example, 'dinput8'. That's the easiest DLL I know and should be pretty equivalent to 'd3d8'.
Basically, you need to 1) create the d3d8 directory
2) create a spec file with what winedump tells you 3) create a d3d8_main.c (or whatever) file with the stubs in it 4) create a Makefile.in file
(from 2) to 4) is just basic copy / paste / replace from what is in dinput8 using the information provided by MSDN / winedump).
5) run make_dlls in the dlls directory 6) add a 'dlls/d3d8/Makefile' line in configure.ac and regenerate configure
And that should be all :-)
Lionel
PS: but well, you could have found everything by yourself (well, it's not that hard to look at a sample DLL and look how it is done) :-)
Thank you Lionel and others,
I now have a box saying that Direct3D 8.0 isn't detected instead of a crash and my stub function reports it correctly on the d3d debug channel.
I see there's no bug for d3d implementation. Should I create it / submit diffs ?
PS: but well, you could have found everything by yourself (well, it's not that hard to look at a sample DLL and look how it is done) :-)
not exactly :)
- create a Makefile.in file
I looked at others to build one
- run make_dlls in the dlls directory
it isn't in the doc now (grep make_dlls * returns nothing in wine/documentation)
- add a 'dlls/d3d8/Makefile' line in configure.ac
and regenerate configure
needs autoconf 2.53 & automake 1.6, not available
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
I now have a box saying that Direct3D 8.0 isn't detected instead of a crash and my stub function reports it correctly on the d3d debug channel.
Nice :-)
I see there's no bug for d3d implementation. Should I create it / submit diffs ?
Well, at least submit your work about D3D 8 stubbing. Let's hope that it will once contain 'real' stuff :-)
And well, why would anyone need a bug to submit a patch ? We are not using yet such an advanced software process !
- run make_dlls in the dlls directory
it isn't in the doc now (grep make_dlls * returns nothing in wine/documentation)
Yeah, but when you look at 'dlls/Makefile.in' to add the new directory, you will see that it's an auto-generated file => you will use make_dlls :-)
- add a 'dlls/d3d8/Makefile' line in configure.ac
and regenerate configure
needs autoconf 2.53 & automake 1.6, not available
Not available ? I downloaded them from ftp.gnu.org and they work fine.
Lionel
I will do it monday (I don't have access to my computer now).
Well, at least submit your work about D3D 8 stubbing. Let's hope that it will once contain 'real' stuff :-)
Sure it will :)
And well, why would anyone need a bug to submit a patch ? We are not using yet such an advanced software process !
No, but we could create a metabug for d3d implementation. d3d8.dll contains a lot of calls to sub d3d8xxxxx dlls that we will emulate.
Yeah, but when you look at 'dlls/Makefile.in' to add the new directory, you will see that it's an auto-generated file => you will use make_dlls :-)
Not available ? I downloaded them from ftp.gnu.org and they work fine.
Sorry, forgot something in my sentence : no rpms are available for redhat 7.3 now, I downloaded the RawHide ones.
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
Le ven 21/06/2002 à 08:51, Sylvain Petreolle a écrit :
Not available ? I downloaded them from ftp.gnu.org and they work fine.
Sorry, forgot something in my sentence : no rpms are available for redhat 7.3 now, I downloaded the RawHide ones.
There's an autoconf253-2.53-3 package from RH for RH7.3 (rather than autoconf-2.53), although I only see an automake15-1.5-2 package and no automake16 or automake-1.6.
Also, I didn't know automake 1.6 was needed; indeed, I rebuilt my wine/configure last week with a standard RH7.3 box wrt those two packages without problems.
Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
Vincent