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 / External Symbols!!!

Author
Message
ThomasFN
19
Years of Service
User Offline
Joined: 26th Aug 2004
Location:
Posted: 30th Sep 2005 21:59
I am really really getting annoyed with this. Whatever the order of my directorys in VC6, the compiler keeps coming up with a external symbols error. Even in the sample code. I'v tried everything - even the extras DX pack. Here is what I'm getting:

--------------------Configuration: World - Win32 Debug--------------Linking...
system.lib(dxdiaginfo.obj) : error LNK2001: unresolved external symbol _CLSID_DxDiagProvider
system.lib(dxdiaginfo.obj) : error LNK2001: unresolved external symbol _IID_IDxDiagProvider
Debug/World.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

World.exe - 3 error(s), 0 warning(s)

Can somebody help me!?

I have the DX 9.0.c SDK and the DX 8.something SDK. My directories for include is as follows:

DX8SDK
DGSDK
DX9SDK
<All the C++ dirs (MFC, etc)>

Libraries (lib):

DX9EXTRAS
DX8SDK
DX9SDK
DGSDK
<All the C++ dirs (MFC, etc)>

Please can someone help!?

IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 30th Sep 2005 22:02
Answer : Frequently asked question thread, second post

For free Plug-ins and source code http://www.matrix1.demon.co.uk
ThomasFN
19
Years of Service
User Offline
Joined: 26th Aug 2004
Location:
Posted: 1st Oct 2005 19:06
I tried all of that, and it didn't work. Even the three lines above the include statement creates a load of 'Multiple Object' errors

OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 1st Oct 2005 19:09
Ian forgot to mention : Dont use Debug mode...

Come to the third DarkBasic Pro Sci Fi Con - Be there and be square
Blog:http://spaces.msn.com/members/BouncyBrick/
Web Site:http://www.nicholaskingsley.co.uk
Miguel Melo
18
Years of Service
User Offline
Joined: 8th Aug 2005
Location:
Posted: 2nd Oct 2005 17:20
Quote: " Ian forgot to mention : Dont use Debug mode..."


You guys keep going on about debug mode... but I don't get it. I use debug mode all the time and it works fine (it's slower, but fine).

In any case, how can you debug if you don't compile in debug mode? Unless you like reading through un-annotaded assembly, that is.
OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 2nd Oct 2005 20:18
Just stick in message boxes or write to the screen or file. The problem with debug more is the executable isn't always the same as release mode (and can introduce errors that wont be in release mode).

Come to the third DarkBasic Pro Sci Fi Con - Be there and be square
Blog:http://spaces.msn.com/members/BouncyBrick/
Web Site:http://www.nicholaskingsley.co.uk
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 2nd Oct 2005 20:23
I only get warnings when compiling in DEBUG mode - I've never had a crash caused by this ... that I'm aware of at least

Anyway, back to the original problem ... you get this:

system.lib(dxdiaginfo.obj) : error LNK2019: unresolved external symbol _CLSID_DxDiagProvider referenced in function "public: long __thiscall CDxDiagInfo::Init(int)" (?Init@CDxDiagInfo@@QAEJH@Z)
system.lib(dxdiaginfo.obj) : error LNK2019: unresolved external symbol _IID_IDxDiagProvider referenced in function "public: long __thiscall CDxDiagInfo::Init(int)" (?Init@CDxDiagInfo@@QAEJH@Z)
Release/xxxxxxxx.exe : fatal error LNK1120: 2 unresolved externals

So do I. Then I generally add a file called GuidFix.cpp to my project, that contains just these lines:



Recompile, and everything works.

If this doesn't work for you then you have problems with the way you have configured your environment, and we'll need more information before we can help more.

For free Plug-ins and source code http://www.matrix1.demon.co.uk
ThomasFN
19
Years of Service
User Offline
Joined: 26th Aug 2004
Location:
Posted: 5th Oct 2005 18:33 Edited at: 5th Oct 2005 18:38
And I just now added the extras to the LIB directories and got something about dbPositionParticles (Thats in the unchanged particle sample) that identifyer does not exist. So i open a plain project (using the DarkGameSDK's wizard) and check the lib dir is still there; it is; and compile it. I get the DXDIAG stuff again and its unfixable from that point (in my view). And how do you switch from Debug to Release? I am really really really getting annoyed with C++ now!

[edit]
Ian: The two lines which involve dxdiag.h - i put them, and I get this in the compiler:

--------------------Configuration: TestDK - Win32 Release--------------------
Compiling...
Main.cpp
Linking...
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXAnimationController already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXCompressedAnimationSet already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXKeyframedAnimationSet already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXAnimationSet already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXEffectCompiler already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXEffect already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXEffectStateManager already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXBaseEffect already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXEffectPool already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXFragmentLinker already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXTextureShader already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXConstantTable already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_CompressedAnimationSet already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_AnimTicksPerSecond already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_EffectInstance already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_EffectParamDWord already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_EffectParamString already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_EffectParamFloats already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_EffectDWord already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_EffectString already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_EffectFloats already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_DeclData already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_VertexElement already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_FVFData already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_PMVSplitRecord already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_PMAttributeRange already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_PMInfo already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_PatchMesh9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_PatchMesh already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_Patch already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_SkinWeights already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_FaceAdjacency already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_VertexDuplicationIndices already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _DXFILEOBJ_XSkinMeshHeader already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXPRTEngine already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXTextureGutterHelper already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXPRTCompBuffer already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXPRTBuffer already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXPatchMesh already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXSkinInfo already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXSPMesh already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXPMesh already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXMesh already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXBaseMesh already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXFileData already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXFileEnumObject already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXFileSaveData already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXFileSaveObject already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXFile already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXLine already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXRenderToEnvMap already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXRenderToSurface already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXFont already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXSprite already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXBuffer already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_ID3DXMatrixStack already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_HelperName already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DQuery9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DStateBlock9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DPixelShader9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DVertexShader9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DVertexDeclaration9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DSwapChain9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DVolume9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DSurface9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DIndexBuffer9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DVertexBuffer9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DVolumeTexture9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DCubeTexture9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DTexture9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DBaseTexture9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DResource9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3DDevice9 already defined in Main.obj
d3dx9.lib(init.obj) : error LNK2005: _IID_IDirect3D9 already defined in Main.obj
dxguid.lib(dxguid.obj) : error LNK2005: _IID_ID3DXBuffer already defined in Main.obj
dxguid.lib(dxguid.obj) : error LNK2005: _IID_ID3DXEffect already defined in Main.obj
dxguid.lib(dxguid.obj) : error LNK2005: _IID_ID3DXMatrixStack already defined in Main.obj
dxguid.lib(dxguid.obj) : error LNK2005: _IID_ID3DXSPMesh already defined in Main.obj
dxguid.lib(dxguid.obj) : error LNK2005: _IID_ID3DXPMesh already defined in Main.obj
dxguid.lib(dxguid.obj) : error LNK2005: _IID_ID3DXMesh already defined in Main.obj
dxguid.lib(dxguid.obj) : error LNK2005: _IID_ID3DXBaseMesh already defined in Main.obj
system.lib(dxdiaginfo.obj) : error LNK2001: unresolved external symbol _CLSID_DxDiagProvider
system.lib(dxdiaginfo.obj) : error LNK2001: unresolved external symbol _IID_IDxDiagProvider
Release/TestDK.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

TestDK.exe - 84 error(s), 0 warning(s)

IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 5th Oct 2005 22:19
In that case, I have no idea ... assuming that you followed the compiler configuration instructions to the letter?

For free Plug-ins and source code http://www.matrix1.demon.co.uk
Ancient Lady
Valued Member
20
Years of Service
User Offline
Joined: 17th Mar 2004
Location: Anchorage, Alaska, USA
Posted: 6th Oct 2005 02:32
The problem isn't C++ as such, it is with the compiler.

Try this variation on Ian's code


That should clear up the 'already defined' errors, I think.

Apparently, the only version of the Directx SDK that works properly with VS6 and the latest version of DarkSDK is the October 2004, including installing the extras pack for the October 2004 SDK. The extras is available from:
http://www.microsoft.com/downloads/details.aspx?FamilyID=d6f237de-a6ee-4ded-8bb6-139536162eb8&DisplayLang=en

To reiterate the include/library order that appears to work:
Headers :
DirectX SDK
DarkSDK
<standard include files>

Libary :
DirectX SDK
DarkSDK
<standard library files>

This is sort-of a synopsis of what I've found in other postings and my own experience (before I switched to VS7).

Cheers,
Ancient Lady
ThomasFN
19
Years of Service
User Offline
Joined: 26th Aug 2004
Location:
Posted: 6th Oct 2005 21:10
OK I'll try that. Maybe finally it will work...

Wishful thinking, eh?

OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 6th Oct 2005 21:14
The chances are good...

Come to the third DarkBasic Pro Sci Fi Con - Be there and be square
Blog:http://spaces.msn.com/members/BouncyBrick/
Web Site:http://www.nicholaskingsley.co.uk
ThomasFN
19
Years of Service
User Offline
Joined: 26th Aug 2004
Location:
Posted: 8th Oct 2005 16:44
Finially! A little bit unstable when it comes to non-linking errors, but beggars can't be choosers...

I had the DirectX9 SDK for June 2005! Switched to Summer 2003, and it compiled and went! The Particles sample - it can't recognize the particle emmisions, and the World sample compiles but locks out the computer when ran.

Not a major issue, but wouldn't it be more useful if the SDK info and all that could go into the documentation?

But anyway, thanks!

(PS, sometimes I get warnings saying '*****.dll has been discarded due to OPT:REF' or something like that)

OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 8th Oct 2005 16:47
See the other post about things being discarded.

The particle names could have been changed - see the headers.

Cant say about the World example though.

Come to the third DarkBasic Pro Sci Fi Con - Be there and be square
Blog:http://spaces.msn.com/members/BouncyBrick/
Web Site:http://www.nicholaskingsley.co.uk
ThomasFN
19
Years of Service
User Offline
Joined: 26th Aug 2004
Location:
Posted: 9th Oct 2005 19:09
Another thing, now I cannot get my SDK to work with C++ DLLS - the linker dosn't recognize any of the commands even though the file has been included...

Help!?

OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 9th Oct 2005 19:24
Pathing ?

Come to the third DarkBasic Pro Sci Fi Con - Be there and be square
Blog:http://spaces.msn.com/members/BouncyBrick/
Web Site:http://www.nicholaskingsley.co.uk
IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 9th Oct 2005 22:49
You need to do more than just include the headers to get the functions - you also need to have the .lib files included with your project. If you take a look at the tail-end of the DarkSDK.h you can see one way that this can be done. The other way is to add the .lib files using the linker properties.

For free Plug-ins and source code http://www.matrix1.demon.co.uk
ThomasFN
19
Years of Service
User Offline
Joined: 26th Aug 2004
Location:
Posted: 10th Oct 2005 20:10
ThomasFN
19
Years of Service
User Offline
Joined: 26th Aug 2004
Location:
Posted: 2nd Nov 2005 14:32
isn't working - again

tried what you said - made no difference - no warnings, errors, anything

IanM
Retired Moderator
21
Years of Service
User Offline
Joined: 11th Sep 2002
Location: In my moon base
Posted: 2nd Nov 2005 14:41
Delete the Release and Debug folders, delete the .ncb file, and then zip everything up and post it here - I'll take a look at it tonight for you.

If you are using any other external libraries, better include those too to save me time.

For free Plug-ins and source code http://www.matrix1.demon.co.uk
OSX Using Happy Dude
20
Years of Service
User Offline
Joined: 21st Aug 2003
Location: At home
Posted: 2nd Nov 2005 14:42
If there are no warnings or errors, then the program must have compiled correctly.

Come to the third DarkBasic Pro Sci Fi Con - Less than 2 weeks to go!
Blog:http://spaces.msn.com/members/BouncyBrick/
Web Site:http://www.nicholaskingsley.co.uk

Login to post a reply

Server time is: 2024-05-15 01:26:00
Your offset time is: 2024-05-15 01:26:00