Microsoft KB Archive/104715

From BetaArchive Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

BUG: Handler Function Prototypes Incorrect for C++

Q104715



The information in this article applies to:


  • Microsoft SQL Server Programmer's Toolkit, version 4.2



BUG# 9383 (4.2.5)


SYMPTOMS

Attempting to compile a C++ DB-Library application for Microsoft Windows NT generates the following compiler errors when either the Win32 SDK or Visual C++ for Windows NT is used:


error C2664: 'dberrhandle' : cannot convert parameter 1 from
'int (void *,int ,int ,int ,char *,char *)' to
'int (__cdecl *)(void )'
error C2664: 'dbmsghandle' : cannot convert parameter 1 from
'int (void *,long ,int ,int ,char *)' to
'int (__cdecl *)(void )'



CAUSE

The DBNTWIN32 section of the SQLDB.H header file declares the dberrhandle and dbmsghandle functions improperly for C++.



WORKAROUND

In the DBNTWIN32 section of SQLDB.H, change the following line (line 628 in the SQLDB.H file dated 8/24/93) from:


   typedef  int (SQLAPI *SQLFARPROC)(); 


to the following:


   typedef int (SQLAPI *SQLERRPROC)(DBPROCESS *,INT,INT,INT,CHAR *,CHAR *);
   typedef int (SQLAPI *SQLMSGPROC)(DBPROCESS *,DBINT,INT,INT,CHAR *); 


Also in the DBNTWIN32 section of SQLDB.H, change the following lines (lines 633 and 634 in the SQLDB.H file dated 8/24/93) from:


   SQLAPI dberrhandle(SQLFARPROC);
   SQLAPI dbmsghandle(SQLFARPROC); 


to the following:


   SQLAPI dberrhandle(SQLERRPROC);
   SQLAPI dbmsghandle(SQLMSGPROC); 



STATUS

Microsoft has confirmed this to be a problem in DB-Library version 4.20.50. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

Additional query words: dblib

Keywords : kbprogramming
Issue type :
Technology : kbSQLServSearch kbAudDeveloper kbSQLServPTK420


Last Reviewed: March 18, 1999
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.