create decls files?

Blitz3D Forums/Blitz3D Programming/create decls files?

bytecode77(Posted 2006) [#1]
hello!

i found a new ode dll somewhere in the web and i wanted to ask, how i cam make a decls file for it?

i don't know the function's names and the parameters!
is it possible?

thx :)


kevin8084(Posted 2006) [#2]
for the function names you can use dumpbin...check out this page: http://support.microsoft.com/kb/131313
An alternative is to check out this page and the download link at the bottom:
http://win32assembly.online.fr/importlib.html


VIP3R(Posted 2006) [#3]
[removed]


Filax(Posted 2006) [#4]
http://www.blitzbasic.com/Community/posts.php?topic=32977

http://www.blitzbasic.com/Community/posts.php?topic=32435


bytecode77(Posted 2006) [#5]
hi!

thx a lot kev :)
the second link worked and gaved this:
_dDot	@524372
_dFactorLDLT	@524375
_dSolveL1	@524646
_dSolveL1T	@524647
_dGeomBoxSetLengths	@524379
_dGeomBoxGetLengths	@524377
......
...



_dFactorLDLT	@524375


=>

_dFactorLDLT(): "_dFactorLDLT@524375"


^^ ist this right?


edit: "@524375" cannot be right.
however, wanna use this dll: http://prdownloads.sourceforge.net/opende/ode-win32-0.7.zip?download

but i don't know the parameters&co... how can i do this?


b32(Posted 2006) [#6]
After finding out the function names, I think you could check in the .h files for the parameters to these functions. The decls would be:

.lib "ode.dll"

dFactor(.., .. etc) : "_dFactorLDLT"

The @524375 is a pointer to the address where the function starts.


bytecode77(Posted 2006) [#7]
one question left:

you say, that the @ sign means the pointer adress. but how about this:

DX7_SetStencilFail%(stencilOP%):"_SetStencilFail@4"
DX7_SetStencilZFail%(stencilOP%):"_SetStencilZFail@4"
DX7_SetStencilPass%(stencilOP%):"_SetStencilPass@4"
DX7_SetStencilFunc%(cmpFunc%):"_SetStencilFunc@4"
DX7_SetStencilRef%(refVal%):"_SetStencilRef@4"
DX7_SetStencilMask%(mask%):"_SetStencilMask@4"
DX7_SetStencilWriteMask%(mask%):"_SetStencilWriteMask@4"
DX7_SetZFunc%(cmpFunc%):"_SetZFunc@4"


they all point to 4!?

anyway, thank you. you helpend me alot :)


kevin8084(Posted 2006) [#8]
the @4 points to how many dword parameters the function takes(or it could just be the way the compiler/linker decorated the name)From the h file dDot is, for example:
PURE_INLINE dReal dDOT   (const dReal *a, const dReal *b) { return dDOTpq(a,b,1,1); }

And above this line in the include file you'll find:
#define dDOTpq(a,b,p,q) ((a)[0]*(b)[0] + (a)[p]*(b)[q] + (a)[2*(p)]*(b)[2*(q)])


The form/parameters for dFactorLDLT are:
ODE_API void dFactorLDLT (dReal *A, dReal *d, int n, int nskip);

Taken from the matrix.h include file


bytecode77(Posted 2006) [#9]
thx, i'll check it out :)


kevin8084(Posted 2006) [#10]
no problem...glad that I could help.


VIP3R(Posted 2006) [#11]
[edit] Nevermind


b32(Posted 2006) [#12]
I saw this @ sign also in the .dll documentation: http://www.blitzbasic.com/sdkspecs/sdkspecs/userlibs_specs.txt, there it also has something to do with the number of bytes that are sent to the function