# Getting my VC++ 2005 Express port linked up to DX8

This topic is 3866 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

I have a C++ game, which is a big set of projects. I was using it on VC++ 6.0 until I got distracteda year ago. I've now got a new PC with VC++ Express 2K5; I have managed to get Win32 working and imported my .dsw... but of course I get loads of errors about D3D8.h, D3DX.h, etc. If it wasn't late, I'd have a play trying to get a bit further. But it is late, so can anyone remind me of the steps I need to take? It's been ages since I did any C++ project setup stuff - I worked on this project for years so all that stuff was done a long time ago - and I've never used VS.net, so while I'm sure I can figure it out you guys can save me some time. Maybe a lot of time - I hate project configuration. I guess my main question is if I have to use a later version of DX, since it is always very hard to find obsolete DX SDKS? If I include D3D9.h or whatever, will things like D3DLight8 still exist - I think I can still use DX8 and D3DX8 from DX9, right? I'm not really interested in porting to DX9/10 tight now, I just want to see if I can get my code to compile/run with as little work as possible. Thanks.

##### Share on other sites
d3d8.h is still included in the current SDK, but I couldn't find D3DX, and new SDKs tend to break even old D3DX9 code, so I can't be too hopeful about that.

Depending on the size of the project (and its design) you may be able to port to D3D9 without much trouble. I remember doing that a few years ago, and it took about a day. Though later D3DX changes caused some more headaches, but the conversion should still be not too hard.

##### Share on other sites
So is the current DX SDK most people use v9 or v10? Once 9 came out they took 8 away very quickly.

Porting would be a pain. I've not done any low-level D3D stuff for a while (plus I have DSound and DShow being used) but the thing is I've used the D3DX classes quite a lot in my code - I use their vectors a lot instead ofmy own vector class is the main one. I guess I could get the DX9 SDK and then use refactoring tools to replace '8' with '9' all over the place?

##### Share on other sites
Quote:
 Original post by d000hgSo is the current DX SDK most people use v9 or v10? Once 9 came out they took 8 away very quickly.Porting would be a pain. I've not done any low-level D3D stuff for a while (plus I have DSound and DShow being used) but the thing is I've used the D3DX classes quite a lot in my code - I use their vectors a lot instead ofmy own vector class is the main one. I guess I could get the DX9 SDK and then use refactoring tools to replace '8' with '9' all over the place?
Most people are still using DX9, because you need a DX10 card (GeForce 8, etc) and Vista to use D3D10 at all, even for delopment.

As far as I know, DSound and DShow shouldn't be a problem, since they haven't changed in DX9. I use DSound still, and I have no problems with the lastest DX9 SDK, and DShow is in the Platform SDK now.

As far as D3DX goes, basic classes are usually fine, it's just things like ID3DXSprite and ID3DXFont that have changed a bit. Even then, it's not huge changes really, just an extra parameter here and there usually.

##### Share on other sites
DX9 forms the basis of Vista's UI, and it'd be here for a while longer. It's quite similar to DX8 (*), unlike the differences between 7->8 or 9->10, so converting to it shouldn't be a serious issue. It may be a way for you to re-learn DX, and get up to speed on DX9 at the same time. I know it'd be easier for a start to get DX8 working, but I think it'd be more productive to convert to DX9. Plus you're more likely to be able to get help with DX9, since people don't use DX8 any longer.

* The major difference is the addition of HLSL and advanced shaders, but itstill supports the fixed function pipeline and asm shaders (unlike DX10).

##### Share on other sites
Have you lost your VC6 CD ? If not, why cant you install it and use VC for DX8 and VS2k5 for other projects ?

BTW, DX8 is still great for casual game projects so its not dead yet. I still use it for example.

EDIT : It seems you dont have DX SDK for DX 8.1 - if thats the issue, I could upload it for you. PM me if you want that.

##### Share on other sites
Quote:
 Original post by VladRHave you lost your VC6 CD ? If not, why cant you install it and use VC for DX8 and VS2k5 for other projects ?
Please tell me you're joking... VC6 is NOT a C++ compiler, it's over a decade old, has some serious bugs in it that prevent fairly simple, legal C++ code from compiling at all, is far from optimal, and hasn't been supported for several years.

The old reason you'd want to install VC6 is if you had a 486 machine with Windows 98 and were isolated on the North pole with no Internet connection to download VC2005.

##### Share on other sites
No, Im not joking. As I said, Ive got VC2k5 installed on my PC, but I find it slow,bloated and hardly usable due to several UI flaws. Therefore, I still develop my games under the old VC6. Despite the claims all over the net, I dont have a problem running the games I code in 200-500 fps (and their not even set to "Optimized for speed" setting), so its definitely not slow for me. I doubt that VC2k5 would produce that much different code that it would it double my performance. Maybe 10%, but 10% (if that at all) is nothing.

PLUS, last time I had to install VC2k5 because of one company, I spent 3 days just installing all patches/updates. One particular patch took over 9 hrs on my PC to install !!!

Besides, VC6 and its UI is pretty fast under Core2Duo, which cant be said about VC2k5.

Im going to port my engine to DX9 this autumn, but until VC2k5 becomes actually usable and stops crashing all the time (this happens extremely rarely with VC6), Im sticking to 10yrs old VC6, probably for next 2-5 yrs and my next 2-4 PC games. In worst case, Ill still have one disk with XP and another with Vista.

##### Share on other sites
Hmm, weird. I've had no problems whatsoever with VC2005 (Express and Professional). There's only one service pack for it, and that took 5 minutes to install (Plus one hour to download). I haven't noticed any problems with responsiveness on 3 seperate PCs (Core 2 Due, AMD X2, AMD Athlon - admittedly, each with at least 1GB RAM).

The compiler bugs with VC6 are mainly template and STL related, but there's also the problem with the scope for variables declared in for() loops, and likely other bugs I don't know about.
While it might not be particularly slow, I'd expect you to get a reasonable speed boost from upgrading to VC2005, although I doubt it'd be much more than 10% (Which is still a pretty big jump), and it obviously depends on your code and how much you use stuff like the STL.

##### Share on other sites
Well, any advantages of STL are immediatelly wiped out by inability to see the contents of the array. Yeah, you can type those "_First,_Last,_whatever" suffixes to each array variable in Watch window, but thats totally killing any time saved by using STL in the first place. Plus, you have to retype them in watch window each time you run the program again.
And AFAIK, its impossible to see contents of whole STL array at once in the watch window, while regular dynamic arrays created on heap are browsable.

Besides, writing new code takes maybe 20% of the total time (at most). The rest is spent designing/tweaking/debugging/testing.

Also, after 6 yrs of C++, I learnt to code any new array type with automatic initialization/self-allocating/de-allocating features and it takes like 5 minutes each time I create new class. I also dont remember having a Cx0000005 exception for around 3 yrs although Im always catching/logging them, so pointers/memory leaks arent a problem either.

The issue with local loop variable isnt even an issue at all. Occasionally, it does happen to me, but its like once per month, and it takes less than a minute to fix it, so no big deal either.

Also, when you need other projects opened, starting another instance of VC takes less than a second, which is absolutely stunning (compared to loading/switching another project under VS2k5).
Its gonna take 10 yrs and 3 major upgrades until VS2k5 shall load under 1 second (if ever).

There are a few other quirks with VC++6, but thats an order of magnitude less compared to, say, Eclipse and Java :-)

##### Share on other sites
Quote:
 Original post by VladRWell, any advantages of STL are immediatelly wiped out by inability to see the contents of the array.
To me, that is the biggest adantage of VC++ 2K5 over VC++6 - because it does let you see contents of arrays, vectors, maps and sets properly, even with nice little scrollable thingies when they are large. I find the new IDE and debugger absolutely wonderful.

It's definitely slower as an IDE than VC6 but I find VC6 crashes more often. It is still a great tool but it really is showing its age now. For pure C++ it is fine but it really doesn't get on well with STL.

Oh, I'm downloading the latest DX SDK and we'll see how that goes. If it is a problem I'll get in touch - assuming you have v8.1, as 8.0 misses a few important things I use.

##### Share on other sites
Right, sod this. I just want my code to compile, I don't want to have to port a huge project I haven't looked at for over a year to an API I don't know - maybe when I get back up to speed!

##### Share on other sites
Quote:
 Original post by d000hgTo me, that is the biggest adantage of VC++ 2K5 over VC++6 - because it does let you see contents of arrays, vectors, maps and sets properly, even with nice little scrollable thingies when they are large. I find the new IDE and debugger absolutely wonderful.

Wow. Irony aside, its nice that VC2k5 (or maybe VC2k3) finally manages to let you see that when debugging, but this feature has come too late for me. Im definitely not gonna rewrite my whole engine codebase just because of that, since it would be absolutely useless with my current skill at C++. Surely, STL would have saved me lots of head-scratching and memory exceptions and pointer bug-hunting, some 3-7 yrs ago. But that time has passed and I learnt to work safely with pointers.

But, surely, for anyone starting now with C++, STL and VC2k5 is an ideal combination thatll make him more productive day one.

Quote:
 Original post by d000hgRight, sod this. I just want my code to compile, I don't want to have to port a huge project I haven't looked at for over a year to an API I don't know

##### Share on other sites
I'm SO close now. I converted a workspace to a solution, and managed to get it to compile, even the DX parts. I even got the DX libs to link in.

I'm left with one problem:
LINK : fatal error LNK1104: cannot open file 'libci.lib'
I had a look around and MS talk about which standard libs are sued, in combination with which header versions I use, but I can't see a solution. Unless perhaps TinyXML can be to blame.
Any one faced this issue before?