December 26, 2010

Compiling DarkGDK and Visual Studio 2010

If you've tried using DarkGDK, the DirectX August 2007 SDK, and Visual Studio 2010 together, chances are that it has led to nothing but failure.

The biggest indication that you are having problems is when you try the simplest possible DarkGDK application...

#include "DarkGDK.h"

void DarkGDK(void)
{
dbSyncOn();
dbSyncRate(60);
while (LoopGDK())
{
dbSync();
}
return;
}


...you get "error C2061: syntax error : identifier '__RPC__out_xcount_part'" when compiling. Frustrating to say the least.

Solution? First, make a copy of the lib folder from the August 2007 DirectX SDK, uninstall the August 2007 SDK and install the February 2010 DirectX SDK.

Second, in your DirectX SDK's lib folder, make a copy of dxerr.lib and name it dxerr9.lib.

Third, open C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\baseclasses.sln and compile it targeting Release_MBCS so you can get strmbase.lib and strmbasd.lib. (No license to redistribute...sorry.)

Fourth, make sure you are using the October 2010 version of the DarkGDK libraries.

Fifth, rename multiplayer.lib in the DarkGDK lib folders to multiplayer_old.lib.

Finally, download this dummy multiplayer.lib to replace it. This will disable the built-in DirectPlay support, but you'll be able to compile, so it's worth it. (Dummy library built per the instructions in this thread.)

Once all is done, you'll be able to get DarkGDK to work just fine for everything except multiplayer.

December 4, 2010

Ugh...

My personal domain got hacked. Looks like they took advantage of a security vulnerability in Windows Server 2003 to do it. Did not want to be spending my weekend working on that site...