navik6459 / darkbasicpro

Automatically exported from code.google.com/p/darkbasicpro
0 stars 0 forks source link

vc60.pdb not found linker warnings when compiling with DarkGDK's debug libraries #7

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
I believe the issue is being caused by a very outdated strmbasd.lib, which is 
utilized by the Animation project. These linker warnings are present in both 
the last released version and this open-source (read-only) version of DarkGDK.

strmbasd.lib needs to be recompiled.
http://msdn.microsoft.com/en-us/library/windows/desktop/dd318238%28v=vs.85%29.as
px

What version of the product are you using? On what operating system?
Visual Studio 2008 on Windows XP Professional

Please provide any additional information below.
See attached file for the linker output

Original issue reported on code.google.com by pcowe...@yahoo.com on 1 Dec 2013 at 4:00

Attachments:

GoogleCodeExporter commented 8 years ago
The path of vc60.pdb that's being referenced in strmbasd.lib was generated here:
c:\dx9sdk\samples\c++\directshow\baseclasses\debug\vc60.pdb

vc60.pdb resulted from the compilation of strmbasd.lib, and should have been 
distributed with it. At the time (prior to 2005), DirectShow was still part of 
DirectX SDK, as it apparently was here. Now it's part of the Windows SDK. If 
the interface has changed since then, the animation module will need to be 
updated to maintain compatibility.

Original comment by pcowe...@yahoo.com on 2 Dec 2013 at 6:32

GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
[deleted comment]
GoogleCodeExporter commented 8 years ago
I found another way to resolve this. Since the linker is ignoring the debug 
information in strmbasd.lib, since the vc60.pdb debug database is missing, I've 
found it's easy to just use strmbase.lib (the release version) instead. And the 
way I've done it, it isn't even necessary for a DarkDGK library directory to 
include the strmbase.lib file (either version) at all! Because the portion of 
that library that is needed is within the resulting animation.lib anyway. 
Here's how it's done:

--------------------
In Dark Basic Pro SDK\Shared\Animation\CAnimation.cpp:

delete lines 20-24
    #ifdef _DEBUG
     #pragma comment ( lib, "strmbasd.lib" )
    #else
     #pragma comment ( lib, "strmbase.lib" )
    #endif
--------------------
In Dark Basic Pro SDK\Shared\Animation\CAnimation.h:

Replace line 13
#include <streams.h>

with this small block of code:
#ifdef DEBUG
#define DEBUG_TEMP
#undef DEBUG
#endif
#include <streams.h>
#ifdef DEBUG_TEMP
#undef DEBUG_TEMP
#define DEBUG
#endif
--------------------
In DarkGDK\Code\Compiler - Visual Studio 9\Animation\Animation.vcproj

In Additional Dependencies of the librarian options of the debug configuration:

change
..\..\..\..\Dark Basic Pro SDK\Shared\BaseClasses\strmbasd.lib
to
..\..\..\..\Dark Basic Pro SDK\Shared\BaseClasses\strmbase.lib

--------------------
In Dark Basic Pro SDK\DarkSDK\Animation\Animation.vcproj

In Additional Dependencies of the librarian options of the debug configuration:

change
..\..\Shared\BaseClasses\strmbasd.lib
to
..\..\Shared\BaseClasses\strmbase.lib

and add libcmt to Ignore Specific Library
--------------------
And that's it. The release library strmbase.lib will be included in 
animation.lib (as I believe it was before), but the DarkDGK user who links with 
animation.lib will no longer need to link to strmbase.lib. And this works for 
both release and debug configurations.

Who would be using DarkDGK and want to debug the inner workings of DirectShow 
anyway?

Original comment by pcowe...@yahoo.com on 2 Dec 2013 at 8:52

GoogleCodeExporter commented 8 years ago
This was fixed in r106. strmbasd (debug) has been replaced with strmbase 
(release) for the debug build.

Original comment by pcowe...@yahoo.com on 30 Dec 2013 at 2:52