[MSVC 2010] Build errors

Started by vendeme, 16 September 2013, 19:37:59

vendeme

https://pastebin.com/hL1Xq6ry
I'm sorry for errors in Russian, no English versions of IDE.

texus

The first error is in Widget.cpp on line 442, so lets focus on that one first.

Could you try to add the following line to the top of the file and try again?
#include <functional>

vendeme

The same thing.
Quote
2>..\..\..\src\TGUI\Widget.cpp(443): error C2665: std::ptr_fun: ни одна из 3 перегрузок не может преобразовать все типы аргументов
2>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\xfunctional(409): может быть "std::pointer_to_unary_function<_Arg,_Result,_Fn> std::ptr_fun<int,int>(_Result (__cdecl *)(_Arg))"
2>          with
2>          [
2>              _Arg=int,
2>              _Result=int,
2>              _Fn=int (__cdecl *)(int)
2>          ]
2>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\xfunctional(420): или       "std::pointer_to_unary_function<_Arg,_Result,_Fn> std::ptr_fun<int,int>(_Result (__stdcall *)(_Arg))"
2>          with
2>          [
2>              _Arg=int,
2>              _Result=int,
2>              _Fn=int (__stdcall *)(int)
2>          ]
2>          C:\Program Files\Microsoft Visual Studio 10.0\VC\include\xfunctional(431): или       "std::pointer_to_unary_function<_Arg,_Result,_Fn> std::ptr_fun<int,int>(_Result (__fastcall *)(_Arg))"
2>          with
2>          [
2>              _Arg=int,
2>              _Result=int,
2>              _Fn=int (__fastcall *)(int)
2>          ]
2>          при попытке сопоставить список аргументов "(overloaded-function)"

texus

Damn, I hate windows.
I am using ptr_fun for only one reason: windows.h does something strange with the to_lower function so that it can't work cross-platform. And now it seems that I can't even use it in VS2010 (which is strange because I have build precompiled VS2010 binaries without facing this problem).

For now you should change "std::ptr_fun<int, int>(std::tolower)" into "std::tolower" or even "tolower" on the places where the compiler complains (use 'replace all' on all files).

In the meantime I will look for an alternative way to convert a string to lowercase.

vendeme

Now, I have these errors:
Quote2>ClCompile:
2>  Widget.cpp
2>..\..\..\src\TGUI\Widget.cpp(558): error C2143: синтаксическая ошибка: отсутствие ")" перед "{"
2>..\..\..\src\TGUI\Widget.cpp(558): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
2>..\..\..\src\TGUI\Widget.cpp(558): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
2>..\..\..\src\TGUI\Widget.cpp(558): error C2143: синтаксическая ошибка: отсутствие ";" перед ","
2>..\..\..\src\TGUI\Widget.cpp(559): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
2>..\..\..\src\TGUI\Widget.cpp(559): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
2>..\..\..\src\TGUI\Widget.cpp(559): error C2143: синтаксическая ошибка: отсутствие ";" перед ","
2>..\..\..\src\TGUI\Widget.cpp(560): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
2>..\..\..\src\TGUI\Widget.cpp(560): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
2>..\..\..\src\TGUI\Widget.cpp(560): error C2143: синтаксическая ошибка: отсутствие ";" перед ","
2>..\..\..\src\TGUI\Widget.cpp(561): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
2>..\..\..\src\TGUI\Widget.cpp(561): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
2>..\..\..\src\TGUI\Widget.cpp(561): error C2143: синтаксическая ошибка: отсутствие ";" перед ","
2>..\..\..\src\TGUI\Widget.cpp(562): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
2>..\..\..\src\TGUI\Widget.cpp(562): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
2>..\..\..\src\TGUI\Widget.cpp(562): error C2143: синтаксическая ошибка: отсутствие ";" перед ","
2>..\..\..\src\TGUI\Widget.cpp(563): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
2>..\..\..\src\TGUI\Widget.cpp(563): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
2>..\..\..\src\TGUI\Widget.cpp(563): error C2143: синтаксическая ошибка: отсутствие ";" перед ","
2>..\..\..\src\TGUI\Widget.cpp(564): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
2>..\..\..\src\TGUI\Widget.cpp(564): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
2>..\..\..\src\TGUI\Widget.cpp(564): error C2143: синтаксическая ошибка: отсутствие ";" перед ","
2>..\..\..\src\TGUI\Widget.cpp(565): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
2>..\..\..\src\TGUI\Widget.cpp(565): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
2>..\..\..\src\TGUI\Widget.cpp(565): error C2143: синтаксическая ошибка: отсутствие ";" перед ","
2>..\..\..\src\TGUI\Widget.cpp(566): error C2143: синтаксическая ошибка: отсутствие ";" перед "{"
2>..\..\..\src\TGUI\Widget.cpp(566): error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
2>..\..\..\src\TGUI\Widget.cpp(566): error C2143: синтаксическая ошибка: отсутствие ";" перед ","
2>..\..\..\src\TGUI\Widget.cpp(567): error C2059: синтаксическая ошибка: )
...

texus

That means that I wrote code that VS2010 didn't support yet. You can't do anything about that.

I'm currently booting up my windows, I'll fix this as soon as possible.

vendeme

I would use MSVC 2012, but it does not work on win xp.
Such is the incident.

texus

It will take some time to fix this, I will at least need one day.

I was going to send a link to to the v0.6-alpha2, but everything seems to be going wrong today. I can't login to my wordpress anymore and my last backup is like a month old. So I'll have more things to do tomorrow then just getting the code to compile on VS2010 again.

All I can do for now is send v0.6-alpha1 which I still had on my pc. It has a known memory leak, so this is only temporary until I get this issue solved (I'll post here when that happens).

vendeme

#8
I returned to the rev b343a1de8, compiles fine.
git checkout b343a1de8 .

texus

The latest version should compile again.

I haven't been able to test it myself though, as my VC++10 compiler is suddenly 'broken', even though I had been using it earlier to reproduce the fact that the code didn't compile.

vendeme

You are now and 2010 do not support?
Unfortunately, I have to stop using TGUI, because, vc2012 does not work on winXp. :-[

texus

VS2010 is still supported (and will stay supported), but you must compile the library yourself (just like you would have to do for e.g. VS2013).

I cannot provide precompiled libraries for compilers that I don't have on my pc.