For those still having compile issues check these two links to see if they will help
(for most cases it should be enough)
http://www.truevision3d.com/phpBB2/viewtopic.php?t=9476http://www.truevision3d.com/phpBB2/viewtopic.php?t=11743I've been away a while...anyway, I was playing with engine again.
re: the dreaded __missing_type__ error....FOR THOSE THAT HAVE VS.NET2003 OR VS.NET2005 AND HAVE LATEST DX9.x SDK
If you want to be able to use both the DX8 specific libraries with TV3D 6.2, WITHOUT requiring that DX8 be installed only, or to use the 6.2 SDK and 6.5 beta on same box without issues....if the above fixes aren't enough, then do this.
For your 6.2 C++ projects....
1) open up the tv3dcpp.h
2) Goto this area in tv3dcpp.h
they used my fix....
(we're not going to do anything yet here....just put a bookmark here...)
//#import <dx8vb.dll> auto_rename named_guids
#import "..\bin\dx8vb.dll" auto_rename named_guids
#import "..\bin\truevision3d.dll" auto_rename named_guids include("dx8vb.tlh")
//#include "C:\TV3DSDK\Special\truevision3d.tlh"
using namespace TrueVision3D;
#include <d3d8types.h> //<------ INSERT THIS LINE, *AFTER* PREVIOUS IMPORT STATEMENTS
3) BUILD YOUR PROJECT...don't worry about error messages
4) In your DEBUG folder grab these two files....copy them to a safe location outside your debug folder.
truevision3d.tlh
truevision3d.tli
5) Open them in VS.Net....
truevision3d.tlh
truevision3d.tli
6) In truevision3d.tlh change the following lines...
__missing_type__ GetD3DMesh (short MeshIndex );
to
DxVBLibA::D3DXMeshPtr GetD3DMesh (short MeshIndex );
AND
virtual HRESULT __stdcall raw_GetD3DMesh (
/*[in]*/ short MeshIndex,
/*[out,retval]*/ __missing_type__ * * _arg2 ) = 0;
to
virtual HRESULT __stdcall raw_GetD3DMesh (
/*[in]*/ short MeshIndex,
/*[out,retval]*/DxVBLibA::D3DXMesh* * _arg2 ) = 0;
7) In truevision3d.tli change the following lines... (THAT'S *.TLI NOT *.TLH FILE)
inline __missing_type__ _TVInternalObjects::GetD3DMesh ( short MeshIndex ) {
__missing_type__ * _result;
HRESULT _hr = raw_GetD3DMesh(MeshIndex, &_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _result;
}
to
inline DxVBLibA::D3DXMeshPtr _TVInternalObjects::GetD3DMesh ( short MeshIndex ) {
struct DxVBLibA::D3DXMesh* _result = 0;
HRESULT _hr = raw_GetD3DMesh(MeshIndex, &_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _result;
}

GO BACK TO THE tv3dcpp.h file
COMMENT OUT THIS LINE, AND ADD THE FOLLOWING LINE
//#import "..\bin\truevision3d.dll" auto_rename named_guids include("dx8vb.tlh") // COMMENT THIS
#include "C:\TV3DSDK\Special\truevision3d.tlh" // <--- ADD THIS (but use whatever path you copied the two files to. (truevision3d.tlh + truevision3d.tli that you grabbed out of debug directory.
DO NOT FORGET TO ADJUST FOR FILE PATHSDO NOT FORGET TO ADJUST FOR FILE PATHSDO NOT FORGET TO ADJUST FOR FILE PATHSIf you've done it correctly you won't get the dreaded "__missing_type__ " error
and project should compile without issues even if you have DX9.x installed.