Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 5 of 5 total
Thread Can't compile a simple program using Version 4.31 (4.31 Build 3) and C++ Builder XE
Tue, Apr 10 2012 8:20 PMPermanent Link

IQA

Hi Tim & Team,

I've just installed DBISAM Version 4.31 (4.31 Build 3) in C++ Builder XE and added a few components on a form and tried to compile.

I get a whole host of errors from...

[BCC32 Error] dbisamlb.hpp(654): E2316 'TBcd' is not a member of 'Db'
 Full parser context
   MainForm.cpp(6): #include MainForm.h
   MainForm.h(5): #include C:\Program Files (x86)\DBISAM 4 VCL-STD-SRC\C++Builder 5\code\dbisamtb.hpp
   dbisamtb.hpp(13): #include C:\Program Files (x86)\DBISAM 4 VCL-STD-SRC\C++Builder 5\code\dbisamlb.hpp
   dbisamlb.hpp(26): namespace Dbisamlb

To a more worrying problem where the dbisamst.hpp file is all corrupt and full of escape characters and defines being pushed onto multiple lines in lots of places... For example:

#define DBISAM_ERRSTR_BLOBLIMIT "Too many BLOB fields or invalid BLOB block size specified "\
   "for the table '%s'"
#define DBISAM_ERRSTR_BOF "Beginning of table '%s' unexpectedly encountered"
#define DBISAM_ERRSTR_EOF "End of table '%s' unexpectedly encountered"
#define DBISAM_ERRSTR_PRIMARYKEYREDEFINE "A primary index is already defined for the table '%s' and "\
   
   "cannot be added again"
#define DBISAM_ERRSTR_INDEXNAMEREQUIRED "The secondary index name is missing or not specified for t"\
   
   "he table '%s'"

Any ideas? I'm running Windows 7 64 bit and C++ Builder XE .... I tried uninstalling and deleting the folder  C:\Program Files (x86)\DBISAM 4 VCL-STD-SRC\RAD Studio XE (C++)
Then re-installing and the same problem.

Thanks,

Phil.
Wed, Apr 11 2012 1:53 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Philip,

<< I get a whole host of errors from...

[BCC32 Error] dbisamlb.hpp(654): E2316 'TBcd' is not a member of 'Db'
 Full parser context
   MainForm.cpp(6): #include MainForm.h
   MainForm.h(5): #include C:\Program Files (x86)\DBISAM 4
VCL-STD-SRC\C++Builder 5\code\dbisamtb.hpp
   dbisamtb.hpp(13): #include C:\Program Files (x86)\DBISAM 4
VCL-STD-SRC\C++Builder 5\code\dbisamlb.hpp
   dbisamlb.hpp(26): namespace Dbisamlb >>

Does that say C++Builder 5 ??  If so, then that's your issue.  You need to
use the proper installation for XE / C++, or make sure that you don't have
any compiler search paths set that are pointing to the C++Builder 5 code
instead of the XE code.

--
Tim Young
Elevate Software
www.elevatesoft.com


Wed, Apr 11 2012 6:51 PMPermanent Link

IQA

Hi Tim,

Strange... The thing is, its just a brand new VCL application... I have Borland C++ Builder 5 and C++ Builder XE installed on the same PC and have installed both versions of DBISAM

For some reason the C++Builder path was added to the PATH in XE... After removing this it got past those errors... BUT

Now I have these compile errors on a brand new app with any DBISAM component on the form.

[BCC32 Error] dbisamcn.hpp(1836): E2040 Declaration terminated incorrectly
 Full parser context
   MainForm.cpp(9): #include MainForm.h
   MainForm.h(19): #include C:\Program Files (x86)\DBISAM 4 VCL-STD-SRC\RAD Studio XE (C++)\code\dbisamtb.hpp
   dbisamtb.hpp(25): #include C:\Program Files (x86)\DBISAM 4 VCL-STD-SRC\RAD Studio XE (C++)\code\dbisamcn.hpp
   dbisamcn.hpp(28): namespace Dbisamcn
[BCC32 Error] dbisamcn.hpp(1837): E2040 Declaration terminated incorrectly
 Full parser context
   MainForm.cpp(9): #include MainForm.h
   MainForm.h(19): #include C:\Program Files (x86)\DBISAM 4 VCL-STD-SRC\RAD Studio XE (C++)\code\dbisamtb.hpp
   dbisamtb.hpp(25): #include C:\Program Files (x86)\DBISAM 4 VCL-STD-SRC\RAD Studio XE (C++)\code\dbisamcn.hpp
   dbisamcn.hpp(28): namespace Dbisamcn
[BCC32 Error] MainForm.cpp(577): E2096 Illegal structure operation
 Full parser context
   MainForm.cpp(574): parsing: void _fastcall TMain::LoadLicenseBtnClick(TObject *)
Failed
Elapsed time: 00:00:00.6
Wed, Apr 11 2012 6:57 PMPermanent Link

IQA

Just in addition regarding those 2 ERRORS on these lines:

static const System::ShortInt CSIDL_LOCAL_APPDATA = 0x1c;
static const System::ShortInt CSIDL_COMMON_APPDATA = 0x23;

My project has an include:

#include <shlobj.h>

Which it uses to grab CSIDL Paths, if I don't have the include my code cant use the:

SHGetFolderPath(NULL, nFolder, NULL, NULL, strBuffer);

So how can I get around that?

Thanks again,

Phil.
Thu, Apr 12 2012 1:51 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Philip,

<< Now I have these compile errors on a brand new app with any DBISAM
component on the form. >>

If you remove the CSIDL constants, it should fix the problem.  I'll have to
put this in as a fix for the next DBISAM build.

--
Tim Young
Elevate Software
www.elevatesoft.com
Image