I have created some C++ classes in C++ Builder. I am now using these in a VCL forms application. I have a function that loads a text file and takes a string as an argument.
I am using an openDialog control to browse to the file to then open it up.
My problem is this: The .filename property of the openFialog is in the form of UnicodeString and my function needs a std::string. How can I convert a unicode string to a std::string?
Here is my code:
OpenDialog1->Execute();
calCalendar.loadAppointmentsFromFile(OpenDialog1->FileName.t_str());
Here is the function definition:
void loadAppointmentsFromFile(const std::string& stringFilename);
I am getting the following error:
[BCC32 Error] Assessment2.cpp(39): E2342 Type mismatch in parameter ‘stringFilename’ (wanted ‘const std::string &’, got ‘wchar_t *’)
Can I please have some help to rectify this problem?
Use UnicodeString::t_str to get a narrowed string. However, you should consider not mixing the two.
Another option is to convert to an
AnsiStringfirst:Or