BUG: Handler Function Prototypes Incorrect for C++ID: Q104715
|
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 )'
The DBNTWIN32 section of the SQLDB.H header file declares the dberrhandle and dbmsghandle functions improperly for C++.
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)();
typedef int (SQLAPI *SQLERRPROC)(DBPROCESS *,INT,INT,INT,CHAR *,CHAR *);
typedef int (SQLAPI *SQLMSGPROC)(DBPROCESS *,DBINT,INT,INT,CHAR *);
SQLAPI dberrhandle(SQLFARPROC);
SQLAPI dbmsghandle(SQLFARPROC);
SQLAPI dberrhandle(SQLERRPROC);
SQLAPI dbmsghandle(SQLMSGPROC);
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 : kbprg SSrvDB_Lib SSrvProg
Version : 4.2.5
Platform : WINDOWS
Issue type :
Last Reviewed: March 17, 1999