Converting Directx8 LIB to a DLL

Michael Hutton michael.hutton@westnet.com.au
Sat Jun 28 03:28:00 GMT 2008


Hello,

I would be grateful for any help. I am programming DirectX using BB4W 
(BBC Basic For Windows) by R.T.Russell.  It is a BASIC interpreter. I 
have been programming DirectX applications and have been able to use 
D3D8.dll with no problems but I want to be able to use D3DX8.LIB 
functions via BASIC. I think that in C/C++ the application links the 
D3DX8.LIB at compile time (??) and I have no way in BASIC to do that. I 
have been able to use the functions in D3DX8D.DLL (debug) version but I 
am not allowed, due to copyright restrictions, to redistribute that dll. 

I have been told that with gcc I would be able 'export' the LIB to a DLL 
and then I would be able to redistribute this with my applications. I 
have downloaded gcc, but in all honesty it is all Greek to me.

Would anyone be kind enough to either guide me through what I want to 
do, or direct me to the best place? I  know it is a lot to ask.

In the mean time I'm going to do a bit of reading ( I would just like to 
state that at the moment I don't even know the difference between a LIB 
and a DLL!) and try to make in roads into this problem.

For instance, in BB4W for me to use any procedure in D3DX8D.DLL I would 
do the following
   
      [ also install D3D8.dll...
        ...]

      file$="d3dx8d.dll"    
      SYS "LoadLibrary", file$ TO D3DX%
      IF D3DX%=0 THEN PRINT"No D3DX support.":VDU7:WAIT 50
     
      SYS "GetProcAddress", D3DX%, "D3DXCreateMesh" TO `D3DXCreateMesh`
      IF `D3DXCreateMesh`=0 THEN PRINT"`D3DXCreateMesh` not supported."
      SYS "GetProcAddress", D3DX%, "D3DXCreateTeapot" TO `D3DXCreateTeapot`
      IF `D3DXCreateTeapot`=0 THEN PRINT"No cuppa!"
      SYS "GetProcAddress", D3DX%, "D3DXCreateBox" TO `D3DXCreateBox`
      IF `D3DXCreateBox`=0 THEN PRINT"No Box"
      SYS "GetProcAddress", D3DX%, "D3DXCreateCylinder" TO 
`D3DXCreateCylinder`
      IF `D3DXCreateCylinder`=0 THEN PRINT"No Cylinder"
      SYS "GetProcAddress", D3DX%, "D3DXCreateSphere" TO `D3DXCreateSphere`
      IF `D3DXCreateSphere`=0 THEN PRINT"No Sphere"
      SYS "GetProcAddress", D3DX%, "D3DXLoadMeshFromX" TO 
`D3DXLoadMeshFromX`
      IF `D3DXLoadMeshFromX`=0 THEN PRINT"No Sphere"
      SYS "GetProcAddress", D3DX%, "D3DXCreateBuffer" TO `D3DXCreateBuffer`
      IF `D3DXCreateBuffer`=0 THEN PRINT"Procedure CreateBuffer Not found."

I am able to use the D3DXfunctions.... but am not allowed to 
redistribute the file.

I hope I have elucidated the problem I have clearly.

Any help, suggestions, comments, etc would be most welcome!

Michael Hutton



More information about the Gcc-help mailing list