added visual C++ support