Partager via


What is strmbasedu.lib and where did it go?

Recently I was asked the following (paraphrased):

I am trying to build a DirectShow project which I inherited. I get this error: "fatal error LNK1104: cannot open file 'strmbasdU.lib". I am able to build strmbase.lib and strmbasd.lib.

What is strmbasdu.lib? In older DirectShow SDKs, strmbaseu.lib and strmbasdu.lib were the Unicode builds of the DirectShow base class library.

Configuration Lib
x86 ANSI Retail strmbase.lib
x86 ANSI Debug strmbasd.lib
x86 Unicode Retail strmbaseu.lib
x86 Unicode Debug strmbasdu.lib

In the Windows Server 2003 R2 Platform SDK, the DirectShow samples switched from VC6 project files to makefiles (long story). These makefiles did not include Unicode project configurations, unfortunately.

In the Windows SDK for Windows Vista, we finally replaced the makefiles with VC 2005 project files and included both Unicode and ANSI project configurations. Now the matrix looks like this:

Configuration Lib
x86 ANSI Retail strmbase.lib
x86 ANSI Debug strmbasd.lib
x86 Unicode Retail strmbase.lib
x86 Unicode Debug strmbasd.lib

Note the lack of "u" suffix. At this point, Unicode should really be anyone's default build setting (barring some specific reason, like a legacy project).

The Windows SDK for Windows Server 2008 adds x64 project settings, keeping the same naming convention (strmbase.lib for all release builds, strmbasd.lib for all debug builds).

Comments