Guess this is my first post. I picked up Cubase yesterday (so I’ve had it for less than 24 hours) since Cakewalk SONAR early end-of-life. So Hi!
When I start Cubase 9.5 I was surprised to find that the Hub was always showing Connecting… and would never show any of the content. Some googleing found a bunch of people with this issue but solutions were pretty much non-existent. I write Windows applications for a living though and working this out is (sadly) well within my skill set. It took a bit but I’ve figured out why and can recommend some solutions.
In a nutshell Cubase (via the hubsupport.dll) loads/uses DLLs from the eLicnenser tools directory (for me this was C:\Program Files\eLicenser\Tools) this includes QtNetwork4.dll. The problem is that QtNetwork4.dll imports ssleay32.dll and libeay32.dll DLLs. These DLLs provide the OpenSSL support for apps that want to us encrypted HTTP.
Since the eLicenser Tools directory isn’t in Cubase’s path, the actual DLLs loaded depends on the user’s path (and a lot of other things including some system settings/etc). In my case some application (still not sure who) had installed its versions of ssleay32.dll and libeay32.dll into my Windows\System32 folder. As a result Cubase was actually loading those versions, instead of the versions in the eLicensers Tools dir. Which might have been fine, but the DLLs in my system were/are newer than the version eLicenser installs. And they don’t have the same DLL exports. So the loading throws an ordinal not found exception. Which results in the whole QtNetwork4.dll failing. Which causes the Cubase hub to show the “Connecting…” message and never show any web content.
I think Steinberg needs to modify every single application that uses this eLicenser tools dir to first do a SetDllDirectory() call on that path, so that it will look for DLLs in that directory before using the rest of the user’s path. Or perhaps they should move the support DLLs into the Cubase exe directory and not do this “shared” support DLL directory thing. There are also a few manifest tricks they could use as well, but they need to do something so that DLLs in the system and other folders with the same names as the DLLs in the eLicneser tools dir aren’t loaded instead of the ones they want.
In order to solve this problem there are a couple of ways you can do it. The best solution for me was to copy the version of the OpenSLL DLLs that Cubase/eLicenser wants into the Cubase exe directory. That is I copied C:\Program Files\eLicenser\Tools\ssleay32.dll and C:\Program Files\eLicenser\Tools\libeay32.dll into the same directory with the Cubase9.5.exe file. If you have a version of QtNetwork4.dll or QtCore4.dll in your path (because of another application) you might need to copy more DLLs from the eLicenser Tools dir into the Cubase dir. But that might lead to problems if/when eLicneser is updated.
Once I did this, the Hub Connect would show actual web content.
(I also added firewall exception rules for Cubase but I don’t think I actually needed them, my problem was the network support DLL load issue)
Being new to Cubase I’m not sure if submitting this to Steinberg is worth my time, but I’m posting this here so that it might help someone.