I got it to work with VC++ 2005 Express! Well, not exactly - it still uses VC++ 2003 Toolkit to compile and link, but now I can tinker with the SDK in the VC++ 2005 IDE.
Instructions:
1) Do steps 1-3 in Kael's first post.
2) Install
Visual C++ 2005 Express edition or any other edition.
3) Do NOT try opening the existing project file in VC++ 2005. Instead, run VC++, go File->New->Project. Select General of the left-side, then Makefile Project on the right. Enter the
parent directory of the location that you extracted the SDK to. For me, this was "D:\Games\Civilization 4\Assets\". Then type in the directory name of the location. For me, this was "CvGameCoreDLL_vc2k5". Click OK.
4) The Makefile Application Wizard should pop up. Click next. Clear all the textboxes for now. Click Finish.
5) Download and extract the attached makefile to the project directory. This makefile is based off a makefile exported from CodeBlocks.
6) Open up the makefile in wordpad or another text editor that understands Unix text files (not notepad). Change TOOLKIT to the path of your Visual C++ Toolkit 2003 directory. Change PSDK to the path of your Microsoft Platform SDK. That should be the only settings you need to mess with. Save and exit.
7) Back in VC++, in the Solution Explorer window, right-click the project->Add->Existing Item. Select all the files and folders in the SDK and click OK.
8) Right-click the project again->Properties. Click on Configuration Manager. Click on the Active solution configuration dropdown and select edit. Remove Debug, and rename Release to Final_Release. Click Close. In the table below, click the cell under Configuration and select Edit. Remove Debug, and rename Release to Final_Release. Click Close. Make sure Final_Release is selected. This should ensure no bogus Debug and Release directories are created when building the project. Click Close to return to project properties.
9) Select NMake on the left side. For Build Command Line, enter "nmake Final_Release". For Rebuild All Command Line, click the ".." button, then enter the two lines "nmake clean_Final_Release" and "nmake Final_Release" one after another, then click OK. For Clean Command Line, enter "nmake clean_Final_Release". The Output box doesn't matter at all - you can clear it if you want to. Click OK.
10) Make sure you project is selected and click the Build Project or Build Solution button (or go Build->Build Solution or Build->Build <project>, or right-click the project and select Build).
And that should do it!
Note: I changed the location where the dll is created to "Final_Release" instead of "..\Assets". You can change this in the makefile by going down to the "### The targets of this project" section and changing all the paths there.