}
//------------------------------------------------------------------------------
-#ifdef _WIN32\r
+#ifdef _WIN32
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE prevInstance, LPSTR lpCmdLine, int nShowCmd)
{
int argc = __argc;
QApplication app( argc, argv );
Q_INIT_RESOURCE(vvIcons);
+
+ //
+ // ATTENTION: RĂ´mulo Pinho - 05/08/2011
+ // Forcing the locale of the application is necessary
+ // because QT initialization changes it to the locale
+ // of the language of the system. This can cause
+ // inconsistencies when, e.g., reading float values
+ // from DICOM fields with gdcm, since the decimal
+ // point may be changed for a comma (as in French).
+ // In practice, functions such as scanf and its
+ // variations are directly affected.
+ // https://bugreports.qt.nokia.com//browse/QTBUG-15247?page=com.atlassian.jira.plugin.system.issuetabpanels%253Achangehistory-tabpanel
+ //
+#ifndef _WIN32
+ std::string old_locale = setlocale(LC_NUMERIC, NULL);
+ setlocale(LC_NUMERIC, "POSIX");
+#endif
vvMainWindow window;
window.ApplyWindowLevelToAllImages();
}
+#ifndef _WIN32
+ // restoring the locale, just to be clean...
+ setlocale(LC_NUMERIC, old_locale.c_str());
+#endif
+
return app.exec();
}