create decls files?
Blitz3D Forums/Blitz3D Programming/create decls files?
| ||
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 :) |
| ||
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 |
| ||
[removed] |
| ||
http://www.blitzbasic.com/Community/posts.php?topic=32977 http://www.blitzbasic.com/Community/posts.php?topic=32435 |
| ||
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? |
| ||
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. |
| ||
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 :) |
| ||
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 |
| ||
thx, i'll check it out :) |
| ||
no problem...glad that I could help. |
| ||
[edit] Nevermind |
| ||
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 |