Project

General

Profile

Some ideas about enhancing Visual Studio support.

Added by pierre laroche over 9 years ago

Witty seems to be a good product, but I should use it more to say for sure. Regardless, here are some notes taken while evaluating it for the last couple of days. Hopefully they will help someone.

I installed the latest Witty RCx64 SDK for VS2013, and tried VS2015

I was not successful in using CMake-GUI to configure a VS project (the Unix command line cmake is much more intuitive). The Windows build online help files did not inspire confidence, since they refer to VS7, which is ancient. Anyway, it would be much better to provide the already generated solutions to build the samples. A new user would just wants to build and try them first. Since CMake failed, I reverted to creating the project manually.

Created a blank VS project

Added a x64 configuration

Added the .C files (renamed .C to .cpp for syntax highlighting)

Downloading the Boost 1.60 binaries for VS2015. The provided libraries are 1.59/VS2013, so can't be used.

Changed the project source and library paths

Added the required .libs

Disabled warning 4996

Built the project (lots of warnings, but none fatal - also, pretty slow compiles due to templates?)

Added the required supporting .dlls to the executable path

Added the resource directory

Ran the program.

Unfortunately, the sample crashed (exception in the boost library) on the first HTTP request.

Not to be deterred, I repeated the above, with VS2013 and the provided boost libraries (1.59). The sample then worked as advertised.

One issue,

The Witty headers do not have a file extension, which disables VS syntax highlighting during source code browsing. Any way to fix this?


Replies (2)

RE: Some ideas about enhancing Visual Studio support. - Added by pierre laroche over 9 years ago

Update,

I also tried WtSDKVS2013+boost1.59+VS2015. The hello sample app builds, but crashes on the first http request, so it looks like this SDK cannot be used with VS2015.

call stack:

HelloWt.exe!std::_Tree<std::_Tmap_traits<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional >,std::_List_iterator<std::_List_val<std::List_simple_types<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional >,boost::signals2::slot<voidcdecl(Wt::WMouseEvent),boost::function<void_cdecl(Wt::WMouseEvent)> >,boost::signals2::mutex> > > > >,boost::signals2::detail::group_key_less<int,std::less >,std::allocator<std::pair<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional > const ,std::_List_iterator<std::_List_val<std::List_simple_types<boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional >,boost::signals2::slot<voidcdecl(Wt::WMouseEvent),boost::function<void_cdecl(Wt::WMouseEvent)> >,boost::signals2::mutex> > > > > > >,0> >::begin() Line 1147 C

HelloWt.exe!boost::signals2::detail::grouped_list<int,std::less,boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional >,boost::signals2::slot<void _cdecl(Wt::WMouseEvent),boost::function<voidcdecl(Wt::WMouseEvent)> >,boost::signals2::mutex> > >::push_front(const std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional > & key, const boost::shared_ptr<boost::signals2::detail::connection_body<std::pair<enum boost::signals2::detail::slot_meta_group,boost::optional >,boost::signals2::slot<voidcdecl(Wt::WMouseEvent),boost::function<void_cdecl(Wt::WMouseEvent)> >,boost::signals2::mutex> > & value) Line 116 C

HelloWt.exe!boost::signals2::detail::signal_impl<void _cdecl(Wt::WMouseEvent),boost::signals2::optional_last_value,int,std::less,boost::function<voidcdecl(Wt::WMouseEvent)>,boost::function<voidcdecl(boost::signals2::connection const &ptr64,Wt::WMouseEvent)>,boost::signals2::mutex>::nolock_connect(boost::signals2::detail::garbage_collecting_lockboost::signals2::mutex & lock, const boost::signals2::slot<voidcdecl(Wt::WMouseEvent),boost::function<void_cdecl(Wt::WMouseEvent)> > & slot, boost::signals2::connect_position position) Line 561 C

HelloWt.exe!boost::signals2::detail::signal_impl<void _cdecl(Wt::WMouseEvent),boost::signals2::optional_last_value,int,std::less,boost::function<voidcdecl(Wt::WMouseEvent)>,boost::function<voidcdecl(boost::signals2::connection const &ptr64,Wt::WMouseEvent)>,boost::signals2::mutex>::connect(const boost::signals2::slot<voidcdecl(Wt::WMouseEvent),boost::function<void_cdecl(Wt::WMouseEvent)> > & slot, boost::signals2::connect_position position) Line 164 C

HelloWt.exe!boost::signals2::signal<void _cdecl(Wt::WMouseEvent),boost::signals2::optional_last_value,int,std::less,boost::function<voidcdecl(Wt::WMouseEvent)>,boost::function<voidcdecl(boost::signals2::connection const &ptr64,Wt::WMouseEvent)>,boost::signals2::mutex>::connect(const boost::signals2::slot<voidcdecl(Wt::WMouseEvent),boost::function<void_cdecl(Wt::WMouseEvent)> > & slot, boost::signals2::connect_position position) Line 692 C

HelloWt.exe!Wt::EventSignalWt::WMouseEvent::connect<HelloApplication,HelloApplication>(HelloApplication * target, void(HelloApplication::*)() method) Line 1090 C

HelloWt.exe!HelloApplication::HelloApplication(const Wt::WEnvironment & env) Line 63 C

HelloWt.exe!createApplication(const Wt::WEnvironment & env) Line 93 C

HelloWt.exe!boost::detail::function::function_invoker1<Wt::WApplication * _ptr64 (cdecl*)(Wt::WEnvironment const &ptr64),Wt::WApplication *ptr64,Wt::WEnvironment const &_ptr64>::invoke(boost::detail::function::function_buffer & function_ptr, const Wt::WEnvironment & a0) Line 102 C

wtd.dll!00007ffba7ebe4d3() Unknown

wtd.dll!00007ffba7ea9e2a() Unknown

wtd.dll!00007ffba7ef07f2() Unknown

wtd.dll!00007ffba7eeaef0() Unknown

wtd.dll!00007ffba7eabf22() Unknown

wthttpd.dll!00007ffbabbf5bd9() Unknown

wthttpd.dll!00007ffbabbf319f() Unknown

wthttpd.dll!00007ffbabbf5961() Unknown

wthttpd.dll!00007ffbabbf3417() Unknown

wthttpd.dll!00007ffbabbf3fba() Unknown

wthttpd.dll!00007ffbabbf64e2() Unknown

wtd.dll!00007ffba75dea19() Unknown

wtd.dll!00007ffba75dfc30() Unknown

wtd.dll!00007ffba75e4831() Unknown

wtd.dll!00007ffba75e471b() Unknown

wtd.dll!00007ffba75ce18f() Unknown

wtd.dll!00007ffba75d9cf1() Unknown

wtd.dll!00007ffba75ceb1c() Unknown

wtd.dll!00007ffba75d9c21() Unknown

wtd.dll!00007ffba75e46c1() Unknown

wtd.dll!00007ffba8225677() Unknown

[External Code]

RE: Some ideas about enhancing Visual Studio support. - Added by Koen Deforche over 9 years ago

Indeed you cannot use the 2013 version with VS2015. WE are in the process of creating a binary build for Visual Studio2015, but there are some thorny issues related to some of our dependencies (skia in particular).

    (1-2/2)