Sure. But the error is still in 'main.hpp' (line 13):
https://code.google.com/p/mandelbulber2/source/browse/trunk/mandelbulber2/src/main.hpp3. M_PI problem has following solution:
#define _USE_MATH_DEFINES
#include <cmath>
works!
4. snprintf is from stdio.h
http://www.cplusplus.com/reference/cstdio/snprintf/ . It is not Linux specific. VC++ doesn't have functions which were implemented in C99. It is also part of C++11, so will be available also in VC++.
What I should use instead of it to keep compatibility? Is there any equivalent in VC++? I can use sprintf(), but it will be not as safe as snprintf()
Qt has very nice string functions, e.g.:
QString str = QString("delta: %1").arg(d, 0, 'E', 3);
// str == "delta: 1.234E+01"
clock() is available - the problem was that 'ctime' was not included. It works if I add a "#include <ctime>" at the top of system.cpp.
7. will be like you wrote '... = (QDir::currentPath() + QDir::separator()).toStdString();'
I will still use std::string and other std::... containers because they are better described (even I have more books) and I also don't like Qt-style iterators (foreach) which use a lot of macros. Some macros make troubles when there is some mistake in the code. Then compiler shows error inside the Qt header file but not in my source code. It is sometimes difficult to solve problems in the code. In future I will use C++11 'foreach'-like construction (
http://www.cplusplus.com/forum/general/106765/)
Well, you decide. But I should mention that Qt containers supports both STL-iterators, Java-style iterations and foreach constructions, so you are free to choose. And wrt macros, I think you already sold your soul, once you started using the signal and slots in Qt :-)
8. .moc file is necesary when I use QUiLoader. This is only way how slots can be defined and connected automatically with ui. This file was generated with moc. You should not use qmake for this application. Try to handle this as a standard c++ application in VC++ (don't use Qt Creator). Call moc to generate fresh .moc file and then launch c++ build.
Fresh changes are already committed to SVN repository.
This sound somewhat strange to me. I think you should aim for being able to build your application with qmake, and I don't think it will require much effort. It seems to work for me, if I simply delete the line: '#include "qt_interface.moc.hpp"'
Now, the next problem is the dependence on 'libjpeg' and 'libpng'. Including the headers made the system compile, but linking fails, because the sourcefiles for the libraries needs to be compiled and linked in. I managed to add libpng (and zlib which it depends on) to the project, but I couldn't compile libjpeg easily. I would suggest to include the libpng library with the Mandelbulber source, but change to Qt builtin JPEG saving (which should be good enough unless you also need to stream tiles to JPEG).
Finally, there are some hardcoded paths, which should be adjusted:
QFile file("/home/krzysztof/workspace/mandelbulber3/qt/render_window.ui");
Update: attached a Windows screenshot!