Microsoft KB Archive/43564

From BetaArchive Wiki
Knowledge Base

Article ID: 43564

Article Last Modified on 11/21/2006

This article was previously published under Q43564


LINKing C subfunctions into a QuickBasic Quick library (.QLB) may generate many "L2025: Symbol defined more than once" errors. This can be caused when the C subfunction is compiled with the SIGNAL.H C include file that comes with Microsoft QuickC version 2.00 and Microsoft C Compiler versions 5.00, 5.10, and 6.00.

If the SIGNAL.H include file is not used, or if the C subfunction is directly LINKed to the Basic program when producing an .EXE file, the errors do not occur.


Microsoft has confirmed this to be a bug in Microsoft QuickBasic versions 4.00, 4.00b, and 4.50; in Microsoft Basic Compiler versions 6.00 and 6.00b (buglist6.00, buglist6.00b); and in Microsoft Basic Professional Development System (PDS) versions 7.00 and 7.10 (buglist7.00, buglist7.10). We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.


Below is the source code that, when LINKed into a Quick library, will create the "Symbol defined more than once" errors.

C Routine

/* SIGNAL.C */ 
/* Demonstration of signal.h failing with QuickBasic 4.50 */ 

#include <signal.h>

int handler ()
{  }
void far testc()
    signal(SIGINT, handler);

Link Command


The Quick library support module used in the above LINK line should be BQLB45.LIB in QuickBasic 4.50, BQLB41.LIB in QuickBasic 4.00b or Basic Compiler 6.00b, BQLB40.LIB in QuickBasic 4.00 or Basic Compiler 6.00, and QBXQLB.LIB in Basic PDS 7.00 or 7.10.

Additional query words: QuickBas BasicCom buglist4.00 buglist4.00b buglist4.50

Keywords: KB43564