Search Home Members Contacts
About Us
Products
Downloads
Community
Support
Pages: 1 [2]
  Print  
Author Topic: Using TV3D 6.2 with Visual C++ 7.0 (VS.NET)  (Read 19454 times)
seppuku arts
Community Member
*
Posts: 49


« Reply #20 on: January 14, 2006, 11:02:32 AM »

Have you installed the Platform SDK and tweaked C++ to work with it, that could be the problem, I made a thread in this section on how to sort tweak it and where to download it
Logged
seppuku arts
Community Member
*
Posts: 49


« Reply #21 on: January 14, 2006, 11:13:06 AM »

Right, I just tried it too with the platform SDK andI still get a million and 1 problems,Ogre seems to run okay (Still to try DX, Torque and Irrlitch) but I get a horrible FPS, which is why I don't want to use it. (Using VC++ 2005 Express edition) So, really, any ideas?
Logged
RicarDog
Customers
Community Member
*****
Posts: 118


« Reply #22 on: January 30, 2006, 06:09:13 PM »

I've uploaded the VC++ Tutorial 1 solution for Visual Studio 2005 here:
http://www.filetransferplus.com/tv3d/

Extract it to your TV3D SDK root folder, so it'll create a VC++8 besides the other folders (VC++6, VB, etc). You'll have to change the DirectX SDK Include folder path to reflect your settings in the project properties (Configuration Properties - C/C++ - General - Additional Include Directories). Then try to build it for Debug. It should build successfully.

EDIT: fixed download url
Logged
mynus
Community Member
*
Posts: 1


« Reply #23 on: March 08, 2006, 04:36:40 AM »

c:\tv3dsdk\vc++6\tutorial 9\tutorial 9.cpp(113) : warning C4996: 'sprintf' was declared deprecated
        c:\program files\microsoft visual studio 8\vc\include\stdio.h(317) : see declaration of 'sprintf'
c:\tv3dsdk\vc++6\tutorial 9\tutorial 9.cpp(174) : error C2679: binary '=' : no operator found which takes a right-hand operand of type 'DxVBLibA::D3DVECTOR' (or there is no acceptable conversion)
        c:\program files\microsoft directx sdk (february 2006)\include\d3d8types.h(52): could be '_D3DVECTOR &_D3DVECTOR::operator =(const _D3DVECTOR &)'
        while trying to match the argument list '(D3DVECTOR, DxVBLibA::D3DVECTOR)'

Just started using this compiler so I might be missing somthing real easy.
using Visual Studio 2005 beta 1 microsoft sent me, with  directx 9 ( I allready followed link and made changes)
Any help or input would be great thanks
Logged
slepttilnoon
Community Member
*
Posts: 1


« Reply #24 on: March 15, 2006, 09:44:24 AM »

First off, thanks a ton to RicarDog.  This thread solved a ton of problems that could have taken hours to work out.  It really helped a lot.  I only just downloaded the code a couple of minutes ago and my experience with DirectX is sparse at best, so I don't really know all of the ins and outs of the code and what the complicated implications of each line of code are.

That said, to "mynus":
I use VStudio 7 (.NET) and have DX9c installed and the code seems to work fine with the fixes RicarDog posted.  Out of all of your errors, I only got this one:

Quote
c:\tv3dsdk\vc++6\tutorial 9\tutorial 9.cpp(174) : error C2679: binary '=' : no operator found which takes a right-hand operand of type 'DxVBLibA::D3DVECTOR' (or there is no acceptable conversion)


I fixed it by replacing (for me, line 174)
TestLight->Direction = pGlobals->Vector(-1.0f,0.0f,0.0f);

with a strict copy of the data members:

TestLight->Direction.x = -1.0f;
TestLight->Direction.y = 0.0f;
TestLight->Direction.z = 0.0f;

As best as I can tell, the "D3DVECTOR"s are just structs, so it should do exactly the same thing:

(from truevision3d.tlh)
struct DxVBLibA::D3DVECTOR Vector (
        float x,
        float Y,
        float Z );

It looks right anyway.  If I'm wrong about this, it'd be nice if someone can give us both the heads up.  It might be possible to write a quick constructor if you're going to be making this conversion often, but I haven't looked into it at all.  

I assume this error:

Quote
c:\program files\microsoft directx sdk (february 2006)\include\d3d8types.h(52): could be '_D3DVECTOR &_D3DVECTOR::operator =(const _D3DVECTOR &)'
while trying to match the argument list '(D3DVECTOR, DxVBLibA::D3DVECTOR)'


can be resolved in a similar fashion.

Hope that helped.
Logged
staticedge
Community Member
*
Posts: 10


« Reply #25 on: April 06, 2006, 06:16:17 PM »

First - that link for the setup for VC++ 8 (Express Edition) is not working. I would really like to get it if possible.

Second - without using that zip file, I used the updated tv3dcpp.h file and got down to one error:

1>c:\tv3dsdk\vc++6\tv3dcpp.h(22) : fatal error C1083: Cannot open include file: 'd3d8.h': No such file or directory

Not sure what to do about that because I'm using d3d9 and I believe that updated header was supposed to solve this problem?

If anyone will contact me about getting RicarDog's zip file:

hurriedcorgi@gmail.com
AIM: hurriedcorgi

-Staticedge
Logged
staticedge
Community Member
*
Posts: 10


« Reply #26 on: April 06, 2006, 06:23:52 PM »

Ok, got RicarDog's zip which eliminated all errors except this one (again):

1>c:\tv3dsdk\vc++8\tv3dcpp.h(33) : fatal error C1083: Cannot open include file: 'd3d8.h': No such file or directory

Any one know the solution to this beyond just going back to dx8?

-StaticEdge
Logged
staticedge
Community Member
*
Posts: 10


« Reply #27 on: April 07, 2006, 05:48:07 PM »

Figured out why for anyone else having this problem... Warning: dumb oversight ahead.

The project file was looking for the dx sdk in RicarDog's original path (D:) and I had forgotten to set mine to C:

duh...

-StaticEdge
Logged
staticedge
Community Member
*
Posts: 10


« Reply #28 on: April 07, 2006, 06:03:04 PM »

One more question for now: RicarDog, your project/solution compiled fine but when I go to compile the tutorials I have to add the, /NODEFAULT "libc.lib", line to the linker - why is that? And what exactly is that doing?

-StaticEdge
Logged
RicarDog
Customers
Community Member
*****
Posts: 118


« Reply #29 on: April 25, 2006, 12:11:50 AM »

That line is to avoid linking twice or to a wrong version of the standard C library, causing errors about function redefinitions.
Logged
PaulMuaddib
Community Member
*
Posts: 171


« Reply #30 on: July 10, 2006, 01:04:18 AM »

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=9476

http://www.truevision3d.com/phpBB2/viewtopic.php?t=11743

I'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....     Cheesy
(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;
}




Cool 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 PATHS
DO NOT FORGET TO ADJUST FOR FILE PATHS
DO NOT FORGET TO ADJUST FOR FILE PATHS


If 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.
Logged
PaulMuaddib
Community Member
*
Posts: 171


« Reply #31 on: July 18, 2006, 09:00:10 PM »

(blank)
Logged
premsta
Community Member
*
Posts: 2


« Reply #32 on: February 05, 2007, 05:44:11 PM »

I've gone through all the steps listed above and have gotten Tutorial1.cpp to compile and almost to link.  However, it complains at the very end that it cannot find LIBC.lib.  Many thanks for all the help given so far...one more step and we're there....

---Prem
Logged
PaulMuaddib
Community Member
*
Posts: 171


« Reply #33 on: February 05, 2007, 07:16:27 PM »

Did you import the project/solution from a previous version of VS.Net?

ie....Did you create the project/solution in VS.Net 2003, and then move to VS.2005?
Logged
PaulMuaddib
Community Member
*
Posts: 171


« Reply #34 on: February 05, 2007, 07:21:38 PM »

If you moved from VS.Net 2003 to VS.Net 2005

then try one of these 2 options....

1) Create a new project in VS.Net 2005 (blank empty, win32 exe project)
   copy source files and header files over, manually add to project
    do a build


if you still get error...try this (easier)
2)  Project Property -> Configuation Properties -> Linker -> Input -> Ignore Specific Library

Ignore the LIBC.LIB
Logged
PaulMuaddib
Community Member
*
Posts: 171


« Reply #35 on: February 05, 2007, 07:50:08 PM »

You will have to use method #2
Logged
Baiame
Customers
Community Member
*****
Posts: 41


« Reply #36 on: March 30, 2007, 06:34:06 PM »

PaulMuaddib,
After trying the other solutions (which didn't work), I tried your latest one. I'm using VS 2005. The top of my tv3dcpp.h looks like this:

Code:
#import <dx8vb.dll> auto_rename named_guids
#include "C:\programs and utilities\TV3DSDK\Project\TV3D Project\debug\backup\truevision3d.tlh"

using namespace TrueVision3D;

#include <d3d8types.h>

The path is definitely right. I'm still getting a "Cannot open include file: 'd3d8types.h': No such file or directory" error upon compilation (same as I got when I tired your first solution). Any ideas?
Logged
PaulMuaddib
Community Member
*
Posts: 171


« Reply #37 on: March 30, 2007, 07:07:41 PM »

Goto
Tools->Options
click on ->Projects and Solutions->Visual C++ Directories

(in dropdown box at upper right)
Show Directories For: ---->Include Files

Add the directory for include file
C:\Program Files (x86)\Microsoft DirectX SDK (February 2006)\Include


(in dropdown box at upper right)
Show Directories For: ---->Library Files
C:\Program Files (x86)\Microsoft DirectX SDK (February 2006)\Lib

(note, your paths may be different)
Logged
PaulMuaddib
Community Member
*
Posts: 171


« Reply #38 on: March 30, 2007, 07:11:13 PM »

ps.

Quote

Quote
#import <dx8vb.dll> auto_rename named_guids
#include "C:\programs and utilities\TV3DSDK\Project\TV3D Project\debug\backup\truevision3d.tlh"

using namespace TrueVision3D;

#include <d3d8types.h>



The path is definitely right. I'm still getting a "Cannot open include file: 'd3d8types.h': No such file or directory" error upon compilation (same as I got when I tired your first solution). Any ideas?


you mention path..but it's not refering to
#include "C:\programs and utilities\TV3DSDK\Project\TV3D Project\debug\backup\truevision3d.tlh"

it's referring to this line
#include <d3d8types.h>    <--- is directory included in look up list??
Logged
Baiame
Customers
Community Member
*****
Posts: 41


« Reply #39 on: March 31, 2007, 12:57:22 AM »

Thanks PaulMuaddib, that did it. I suspected it was something obvious. Now the only errors I get are specific to the syntax of the tutorials.
Logged
Pages: 1 [2]
  Print  
 
Jump to:  

Powered by SMF 1.1.3 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks