I have two vc++ dll projects, which will generate two dlls. A
vector<vector<string>>
object will pass from one dll to another dll. Both of the projects are configured as multithreaded debug dll. And both can be compiled succesfully on vc++ 2008 AND vc++ 2010. However, only the dlls generated from vc++ 2008 projects work. The dlls will be used by another dll compiled under MSDEV version 6.0. So my question is why the
vector<vector<string>>
object cannot be passed between the dlls builted by vc++ 2010? Thx:)
You can not use STL types in DLL interfaces, if you plan to use different compiler versions for the DLL and the code that uses it.
The implementations of vector and string may differ (and they seem to do in your case), and you will get problems like this.