Regrettably, we have not yet managed to get
FeatSynth to build properly in Microsoft Visual Studio. The main reason is
discussed here. Quoth
Microsoft:
Some STL classes contain nested classes. These classes can not be exported. For instance, deque contains a nested class deque::iterator. If you export deque, you will get a warning that you must export deque::iterator. If you export deque::iterator, you get a warning that you must export deque. This is caused by a designed limitation that once a template class is instantiated, it can not be re-instantiated and exported. The only STL container that can currently be exported is vector. The other containers (that is, map, set, queue, list, deque) all contain nested classes and cannot be exported.
Turns out it's tricky in Visual C++ to write
class definitions that include some STL that's not std::vector or std::string,
then export that class in a .DLL. FeatSynth was mostly developed using g++,
though, which happily let us write and dynamically link against our class
definitions that way, so that's how we wrote 'em, blissfully ignorant of the
DLL hell that lied in wait. While we're figuring out
how to alleviate this problem in Visual C++, for the moment if you want to
build FeatSynth on Windows, you'll have to use