Closed ghost closed 9 years ago
It seems that you installed the stable version of Web-connect. What is upstream is ahead of the stable version. You should try the beta version.
So I checked out FreeRDP and FreeRDP-WebConnect and rebuilt them both from scratch. I am getting the following messages in the event log:
RDP::ContextNew
Created RDP client thread
Request FROM: 127.0.0.1 replied with 101
GOT WS CONNECT
followed by the next event log:
Faulting application name: wsgate.exe, version: 0.0.0.0, time stamp: 0x55f8a003
Faulting module name: freerdp.dll, version: 1.2.5.0, time stamp: 0x55f84d30
Exception code: 0xc0000005
Fault offset: 0x000832fe
Faulting process id: 0x1dc0
Faulting application start time: 0x01d0f01247944fa3
Faulting application path: C:\FreeRDP-WebConnect\test\binaries\wsgate.exe
Faulting module path: C:\FreeRDP-WebConnect\test\binaries\freerdp.dll
Report Id: 9e2866cc-df87-48a0-880d-67ecf4eb18d2
Faulting package full name:
Faulting package-relative application ID:
Running wFreeRDP.exe works fine. Any idea what might be wrong? Is there any specific tag I should be building against?
@tmakaro Can you tell me what you've done, so I can reproduce the error?
@c64cosmin Please look at the errors I got while compiling FreeRDP-WebConnect at the bottom of this comment. Perhaps my solution of casting variables is what is causing this problem. Also, why would I have to use cast in the first place?
My compilation process
Tools used
cmake-gui (cmake-3.3.1-win32-x86.exe)
Windows 10 64bit
Visual Studio 12 2013
Here are the libraries that I didn't compile:
OpenSSL OpenSSL 1.0.2d 9 Jul 2015 downloaded from https://slproweb.com/download/Win32OpenSSL-1_0_2d.exe
ActivePerl 5.20 http://www.activestate.com/activeperl/downloads/thank-you?dl=http://downloads.activestate.com/ActivePerl/releases/5.20.2.2002/ActivePerl-5.20.2.2002-MSWin32-x86-64int-299195.msi
Boost 1_58 downloaded from http://sourceforge.net/projects/boost/files/boost-binaries/1.58.0/boost_1_58_0-msvc-12.0-32.exe/download
PThreads w32 2.9.1 downloaded from http://sourceforge.net/projects/pthreads4w/files/pthreads-w32-2-9-1-release.zip/download (I used the pre-built.2 folder)
Here are the libraries that I compiled: (I Ran cmake-gui to generate a VS2013 solution file)
Zlib 1.2.8 downloaded from http://zlib.net/zlib128.zip
libpng1618 downloaded from http://sourceforge.net/projects/libpng/files/libpng16/1.6.18/lpng1618.zip/download
From git: (Use cmake-gui for all except casablanca which already has a Visual studio solution file)
casablanca from https://git01.codeplex.com/casablanca (checkout 2.0.1 tag). It also, uses nuget packages for boost 1_58
EHS from https://github.com/cloudbase/EHS.git (use master branch)
FreeRDP from git://github.com/FreeRDP/FreeRDP.git (use master branch)
FreeRDP-WebConnect from https://github.com/FreeRDP/FreeRDP-WebConnect.git (use master branch)
Other: FreeRDP compiles and runs fine. I had to modify FindCasaBlanca.cmake from:
set(MSVC_SUFFIX "120_2_0.lib")
to
set(MSVC_SUFFIX "120d_2_0.lib")
Errors during the compile of FreeRDP-WebConnect: I had to add about 50 casts for example in Update.cpp:
void Update::Register(freerdp *rdp) {
log::debug << __PRETTY_FUNCTION__ << endl;
rdp->update->BeginPaint = (pBeginPaint)cbBeginPaint;
rdp->update->EndPaint = (pEndPaint)cbEndPaint;
rdp->update->SetBounds = (pSetBounds)cbSetBounds;
rdp->update->Synchronize = (pSynchronize)cbSynchronize;
rdp->update->DesktopResize = (pDesktopResize)cbDesktopResize;
rdp->update->BitmapUpdate = (pBitmapUpdate)cbBitmapUpdate;
rdp->update->Palette = (pPalette)cbPalette;
rdp->update->PlaySound = (pPlaySound)cbPlaySound;
rdp->update->SurfaceBits = (pSurfaceBits)cbSurfaceBits;
rdp->update->RefreshRect = (pRefreshRect)cbRefreshRect;
rdp->update->SuppressOutput = (pSuppressOutput)cbSuppressOutput;
}
I may have fixed the problem incorrectly. Those above casts were originally not there. Looking at the method signatures. Example
From FreeRDP update.h:
typedef BOOL (*pBeginPaint)(rdpContext* context);
From FreeRDP-WebConnect update.hpp:
static void cbBeginPaint(rdpContext* context);
@tmakaro The casts are just typedefs to some function pointers, they shouldn't be any problem, but it's good you've done it, no problem there. I think the problem might be because you are using FreeRDP's master branch. Try this one : https://github.com/FreeRDP/FreeRDP/tree/stable-1.1
@c64cosmin Thanks. I'll give it a try tonight when I am off work.
@c64cosmin That worked! WooHoo!
So I have a working version of FreeRDP-WebConnect using the MSI installer for windows and it works great. When I replace the wsgate.exe with my compiled version, it just hangs after I press the connect button.
Hopefully you will see something that I have missed.
The following is the debug statements for my version and then the debug statements for the working version from the msi:
From my wsgate.exe
From the wsgate.exe that came with the msi: