Re: [IBPP-DISCUSS] Current code base and Windows stack corruption on 64-bit
IBPP is a C++ client class library for FirebirdSQL
Status: Inactive
Brought to you by:
epocman
|
From: Charles H. <Cha...@dd...> - 2018-05-01 21:16:31
|
Thank you for the update. You answered my curiosity about this statement: " Many have reported great success with IBPP. ... Works on Windows, Linux, Mac OS X, FreeBSD, Solaris, and probably all other Firebird supported platforms. Actively developed and maintained. " (http://www.firebirdfaq.org/faq9/ ) It is a nice project, and IBPP gets lots of praise from the FAQ. As for the Firebird native driver for C++, the list at http://www.firebirdfaq.org/cat9/ does not have alternatives to IBPP. Best regards, Charlie -----Original Message----- From: Olivier Mascia [mailto:om...@in...] Sent: Tuesday, May 1, 2018 13:31 To: ibp...@li... Subject: Re: [IBPP-DISCUSS] Current code base and Windows stack corruption on 64-bit > Le 1 mai 2018 à 18:53, Charles Henze <Cha...@dd...> a écrit : > > Hi IBPP team, > > I ran across a problem with the IBPP code on Windows (VS 2017). Access to a Firebird embedded DB using the IBPP wrapper can result in stack corruption for 64-bit. As the post below indicates, the correction was to modify ibase.h as below: > ( > https://stackoverflow.com/questions/36044885/firebird-ibpp-insert-fail > s-silently ) > > 69c69 > < typedef long ISC_STATUS; > --- >> typedef intptr_t ISC_STATUS; > > Should this be rolled back into the source (appropriate ifdef for Windows added)? The ibase.h included in the 2-0-5-1 source is older than that shipped with recent Firebird database examples. However, substitution of the newer ibase.h may break some definitions for LoadLibrary. > Have others tried this? > > Thanks, > Charlie I have not been able (matter of time) to maintain, and certainly not evolve, the old IBPP codebase for _years_. For the last two years or so, I haven't even been involved anymore with Firebird at all, in any way, after a shift of business goals within the company I work for. I suppose IBPP codebase is vastly incompatible with current Firebird releases, which happen well after the last IBPP maintenance occurred. I am not well informed, because I have been away from Firebird evolution for a long time, but as far as I remember things which were ongoing at that time, Firebird should have today his own API designed natively in C++. I suppose the old C API, inherited itself from ages ago, has been kept around for compatibility. So maybe it still makes sense to use IBPP - talking to that C API instead of refactoring applications to use the native C++ interface of Firebird. But it implies using whatever newer version of ibase.h is available today from Firebird API and adjust IBPP source code (and public interface if needed) where maybe required. > However, substitution of the newer ibase.h may break some definitions for LoadLibrary. That's the right path to follow : use the latest ibase.h and fix whatever necessary on IBPP side. Depending on changes that were made to ibase.h by the Firebird project, that may complicate or not support of connections to older versions of Firebird. I would recommend to completely overhaul the design of the row representation though. That was a goal at some point but any effort in that area of IBPP was killed by our business shift. If someone wants to take over the IBPP project at sourceforge, please contact me with a kind of resume, I would then retire myself from the project, something I should probably have done a long time ago. We loved using Firebird (I had been a Firebird Foundation committee member for some years, and my company was a sponsor for a year or two) so the decision to move away wasn't based on or due to Firebird. -- Best Regards, Meilleures salutations, Met vriendelijke groeten, Olivier Mascia ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ ibpp-discuss mailing list Post to ibp...@li... Settings https://lists.sourceforge.net/lists/listinfo/ibpp-discuss http://www.ibpp.org |