[comp.windows.ms] MS Windows Help

moretz@topaz.rutgers.edu (Matthew Matlau) (07/25/89)

Ok all you windows developers - I just got the SDK, and
can even get the "GENERIC" sample application to compile and
link. Actually, it did compile, but when I try to link it I always get
linker errors:
undefined external: DBused 

. There a three undefined externals, all with the _DB prefix, all
referenced in slibce.lib. What have I forgotten to do?

 

wells@dicome.UUCP.uucp (Richard Wells) (07/26/89)

In article <Jul.24.18.09.48.1989.20921@topaz.rutgers.edu> moretz@topaz.rutgers.edu (Matthew Matlau) writes:
>
>Ok all you windows developers - I just got the SDK, and
>can even get the "GENERIC" sample application to compile and
>link. Actually, it did compile, but when I try to link it I always get
>linker errors:
>undefined external: DBused 
>
>. There a three undefined externals, all with the _DB prefix, all
>referenced in slibce.lib. What have I forgotten to do?
>
> 

Actually, I was going to write a short note on this anyway; now I have an
excuse to do it.

I had the same problem.  After talking it over with Microsoft (whose main
response was the standard "reload the C libraries and try again") I realized
that I loaded the SDK after loading QuickC 2.0.  The SDK uses the original C
libraries as a starting point, taking out a bunch of modules and adding
in some new ones.  One of the modules it takes out is CRT0, which in the
QuickC libraries supplies the definitions of the _DB symbols which you
get as unresolved.  (My hunch is that they have something to do with
QuickC's built-in DeBugger.)

The solution is (as Microsoft suggested) to reload the original C libraries,
then reload the SDK, and then reload the QuickC libraries.  Its a bit of
a pain, but it really only takes about 15 minutes.

If you are going to use the SDK and QuickC, then I would suggest that you
not let the SDK installation rename the windows libraries to the same names
as the normal C libraries.  Instead, always link your windows programs with
the /NOD option and explicitly list xlibw and xlibcew (where x is your
favorite memory model) on the link line.  This way, QuickC can use the
regular library names (xlibce).