Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Dark GDK / Newbie Question: Multiplayer.lib errors

Author
Message
MadTinkerer
13
Years of Service
User Offline
Joined: 21st Nov 2010
Location:
Posted: 27th Nov 2010 08:32
Not long ago, VS2008 stopped compiling my projects properly. The official upgrades (http://www.thegamecreators.com/?m=view_product&id=2128&page=download) don't help. I get the same errors whenever I:

1) generate basic example projects using the wizards

2) try to make a new project

3) try to compile an older project that I know worked 100% fine a couple weeks ago.

The messages I get look like this


I am running Windows 7, but Ponganoid in particular was working under Win7, same laptop and everything. The only thing I can think of is that some of the games I've installed have updated DirectX, but why would that adversely affect the DarkGDK libraries?
Hawkblood
14
Years of Service
User Offline
Joined: 5th Dec 2009
Location:
Posted: 27th Nov 2010 16:21
Does it happen on all your projects? This is something I see when I reference a library but don't have all the references correct or out of order.... Compilers are perticular about the order of things. You say it worked before?

The fastest code is the code never written.
MadTinkerer
13
Years of Service
User Offline
Joined: 21st Nov 2010
Location:
Posted: 27th Nov 2010 17:00
Yes, the only difference is that, obviously, they're not all called "Ponganoid" and they have different headers and .cpp files.

Here's a sample from an unmodified example 3D game generated using the wizard and not touching a thing other than the compile button:

Bran flakes91093
16
Years of Service
User Offline
Joined: 13th Sep 2008
Location: Crazy Land
Posted: 27th Nov 2010 17:04
DarkGDK absolutely requires an old version of DirectX (because multiplayer.lib relies on the deprecated DirectPlay API).

You either need to install an older version of DirectX (August 2007)

Or you can make a dummy multiplayer.lib, and instead use DarkNet or Multisync.

“C++ : Where friends have access to your private members.”
-Gavin Russell Baker
MadTinkerer
13
Years of Service
User Offline
Joined: 21st Nov 2010
Location:
Posted: 28th Nov 2010 05:21
Hmmm... I'm pretty sure I did install the 2007 SDK at some point, especially since, as I pointed out, some of my projects were compiling just fine not long ago. I'll try reinstalling the DirectX SDK first before I mess around with dummy libraries.
MadTinkerer
13
Years of Service
User Offline
Joined: 21st Nov 2010
Location:
Posted: 28th Nov 2010 09:17
Reinstalling the DirectX 2007 SDK didn't work. It seems this is because Windows won't let me install the older DirectX files over the newer ones or something like that.

So I made a dummy Multiplayer.lib file according to the instructions. Now I'm getting this message:



That's eight errors less, but three more than the 0 errors I need to get the darn thing to compile.
Mireben
16
Years of Service
User Offline
Joined: 5th Aug 2008
Location:
Posted: 28th Nov 2010 16:40
Before doing anything else, did you check if the path to the DirectX SDK (August 2007 version) is set up correctly in Visual Studio?
Bran flakes91093
16
Years of Service
User Offline
Joined: 13th Sep 2008
Location: Crazy Land
Posted: 28th Nov 2010 22:00 Edited at: 28th Nov 2010 22:02
If you do have DirectX August 2007 installed, there should be a folder in your start menu labeled "Microsoft DirectX SDK (August 2007)"

If that's there, then check to make sure that lib and include paths are in their respective lists in: [Tools]->[Options...]->[[+]Projects and Solutions]->[VC++ Directories]
If they are not there, add them, and I would also suggest removing the later version of the DirectX SDK from the lists (to prevent conflicts).

If it's not installed, you can either keep the dummy multiplayer.lib and remove that lib conflict error (instruction below), or you can try uninstalling the older version of DirectX and installing August 2007.

Quote: "Now I'm getting this message:"


Go to [Project]->[<Project Name> Properties...]->[[+]Configuration Properties]->[[+]C/C++]->[Code Generation]
Change "Runtime Library" to /MT
Then go to [[+]Linker]->[Input] and add "msvcrtd" to the "Ignore Specific Library" list.

“C++ : Where friends have access to your private members.”
-Gavin Russell Baker
MadTinkerer
13
Years of Service
User Offline
Joined: 21st Nov 2010
Location:
Posted: 30th Nov 2010 15:07
Quote: "If they are not there, add them, and I would also suggest removing the later version of the DirectX SDK from the lists (to prevent conflicts)."


Ah-HA! That was the problem! Visual C++ thought I wanted to use the new SDK instead of the old one! The Include and lib lists had both versions of the SDK, but the 2010 one was listed first, so I assume it took precedence. I simply deleted the lines for the 2010 SDK, and kept the 2007 SDK, then changed multiplayer.lib back to the original version just in case.

I also accidentally changed the Executable files list. It had a line for the 2010 SDK but not the 2007 one. I'm not sure which directory of the 2007 SDK is equivalent, so I put "C:\Program Files (x86)\Microsoft DirectX SDK (August 2007)". Everything is compiling fine now (so far) so I don't know if it will be an issue or not. Just watch them update the Dark GDK for the 2010 SDK next week and then I'll have to manually fiddle with everything again

So far I've tested Ponganoid (my project) and the example 3D project. The pong paddles and ball are bouncing around just fine and the ovoids are happily rotating in the blue void! It looks like everything is good now!
MadTinkerer
13
Years of Service
User Offline
Joined: 21st Nov 2010
Location:
Posted: 30th Nov 2010 15:09
Oh, and it turns out that I didn't need to mess with the code generation properties after I got it pointed to the correct SDK. But thanks for the tip anyway!
OceanJeff
15
Years of Service
User Offline
Joined: 5th Jan 2009
Location: Ocean Shores, WA
Posted: 1st Dec 2010 03:57
Ok, I looked at the other forum thread where it tells you to make a fake multiplayer.lib, and compile it without precompiled headers, and static library, etc.

But the code snippet, placed in a new .cpp source file, called multiplayer.cpp, did not compile, it gives me an error msg.

Not sure how to proceed, other than to re-install the old direct x version and continue from there.

Any other ideas? because I hate the idea of having to work with an old sdk, when the latest and greatest is also something that I want to work with.

Later all,

jeff c
OceanJeff
15
Years of Service
User Offline
Joined: 5th Jan 2009
Location: Ocean Shores, WA
Posted: 1st Dec 2010 04:04
Ok, actually...I have a better solution!

All I did was go into Tools - Options...
on the left hand side click the projects and solutions tab.

then click vc++ directories.

then on the right hand side pull down menu that starts with executable files...pull down include files, and push the direct x (latest) BELOW the aug 2007 direct x.

then same pull down menu, choose lib files, and push the direct X (latest) BELOW the aug 2007 direct x.

Then my project compiled fine, and ran fine...

I didn't have to create any funny dummy files, or anything.

Now I wonder if I have to switch back to compile for a direct X 11 project? don't know...haven't gotten that far, just installed it today !

Later all,

Jeff C

p. s. i hope this helps some people.
Mireben
16
Years of Service
User Offline
Joined: 5th Aug 2008
Location:
Posted: 1st Dec 2010 18:39 Edited at: 1st Dec 2010 18:43
Quote: "push the direct x (latest) BELOW the aug 2007 direct x"


That means that you are actually compiling with the old SDK, because the linker will use the files that it finds first.

I'm not convinced that it's a good idea to have both SDKs on your path. If the program finds and uses some functions from the old one and maybe some from the new one... well I don't know what will happen, or whether that situation is even possible. If you have only one SDK on your include path, at least you can be sure which you are using at the moment. If you want to compile different projects with different settings, you may remove the global paths altogether and make it a project-specific setting.

Login to post a reply

Server time is: 2024-11-19 16:30:44
Your offset time is: 2024-11-19 16:30:44