We are currently building an API for a certain library. Part of the interface requires the library to get and return to the user classes such as vector and string.
When trying to simulate use of the library in a simple scenario, in debug mode the system crush when delivering a string as an input.
I believe there is a different representation of the string class in debug or release mode. Then our library assumes to receive a certain representation, read a data member incorrectly and crush along the way. So what is the best way method to transferring STL objects in an API. The target OS is windows XP compiled with MSVC 8, although the library user will use windows their compiler might (and probably will) be different Ideas we had so far:
- Change string to char* - But then developers might be baffled with the responsibility of releasing the memory.
- Use our own version of String – I don't want to develop another private implementation of string.
- Release to the user debug version and release version.
- Ask people on Stack overflow for some option we miss or don’t understand, or just hear from their experience - done.