Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/Compiler/Delphi/Header Generation    [ Add a report in this area ]  
Report #:  68172   Status: Closed
Delphi Int64 constants are translated to 32-bit values by BCB
Project:  C++Builder Build #:  10.0.2288.42451
Version:    10.0 Submitted By:   Kristofer Skaug
Report Type:  Basic functionality failure Date Reported:  10/22/2008 6:47:12 AM
Severity:    Commonly encountered problem Last Updated: 3/20/2012 2:24:39 AM
Platform:    All platforms Internal Tracking #:   266113
Resolution: Fixed (Resolution Comments) Resolved in Build: : 12.0.3250.18309
Duplicate of:  None
Voting and Rating
Overall Rating: No Ratings Yet
0.00 out of 5
Total Votes: None
Description

See Steps.

Workaround is to patch the hpp file manually, but I suppose this only works if the imported .pas unit is relatively stable and you only were using it for the declarations (not e.g. functions or classes).
Steps to Reproduce:

1. Create a valid Delphi .pas unit with the following declaration

unit DelphiUnit;

interface

const IMPORTED_DELPHI_CONST = $FEDCBA9876543210; // an Int64 value

implementation

end.

2. Start BCB 2006 and create a default VCL project.

3. Add DelphiUnit.pas to the BCB project and build it;

4. A DelphUnit.hpp file will be generated, with the following line:
...
static const __int64 IMPORTED_DELPHI_CONST = 0x76543210;


Workarounds
None
Attachment
None
Comments

Remy Lebeau (TeamB) at 12/31/2008 2:29:58 PM -
Appears to be fixed in C++Builder 2007/2009.  An unsigned __int64 constant is produced now:

static const unsigned __int64 IMPORTED_DELPHI_CONST = 0xfedcba9876543210ULL;

Tomohiro Takahashi at 1/4/2009 6:55:14 PM -
Thanks for confirmation. I will check internal status of this report.

Tomohiro Takahashi at 1/7/2009 1:01:42 AM -
Indeed, this issue is not reproducible with recent versions(2009 etc...).

Server Response from: ETNACODE01