I've create a project which is working fine under OSX.
I now wish to port this project to Win64.
This project was developed using RAD Studio C++ Builder Berlin Anniversary Edition 10.1 Update 2 Enterprise. Target Win64.
When running the application, an access violation occurs during the main form creation.
Running in Debug, the error occurs in 'xlocale' at line # 2171 which reads as follows:
*(size_t *)&table_size = 1 << CHAR_BIT;// force space reservation
I should also mention that this line is bounded by "#ifdef __BORLANDC__" and "#endif".
Also, during application startup, I am not using streams in the constructor; therefore, I truly don't understand how the compiler is setting up the application for launch.
Doing some googling, I have found this issue appears to persist through multiple versions of C++ Builder. The results tend to be work-arounds that may or may not work.
For kicks and giggles, I tried one of them which appeared the least invasive to my project and the overall installation of RAD Studio. The suggestion was to declare a stream within the module that initializes the application, creates any pre-created forms, and launches the main form. Curiously, this duplicated the error; however, the call stack now referenced the "main" module instead of the "main" form. The error location was exactly the same!
So, is there a problem with the STL files for C++ Builder?
Could some kindly provide a work-around to this situation?
Any help or suggestions will be greatly appreciated.