Hello,

I have read Larry Gritz's and Till Dechent's answer, but these won't be in my 
reply, since I've subscribed to the mailing list just now (I somehow expected 
to receive direct replies).

We managed to find a workaround, and maybe this will help others. Most likely, 
one or more) boost libraries use/include "boost/winapi/dbghelp.hpp" and that 
why the "dbgeng.dll" dependency appears on Windows. I didn't have the time to 
research which boost library; a quick search didn't yield anything. The 
solution was to add more libraries from the dependency tree into the installer 
(I guess their versions must match):
    "dbgeng.dll", "dbghelp.dll", "DbgModel.dll"

Windows installations come with older version of these DLL-s. Debugging Tools 
for Windows, which also ships with Visual Studio, needs to be installed for 
newer versions -- it's also a possibility (less likely) that Visual Studio 
somehow introduces the dependency.

Thank you for your quick answers.

Radu Arjocu
Software Engineer • Masstech Innovations Inc. • 
www.masstech.com<http://www.masstech.com><http://www.masstech.com>
________________________________
From: Radu Arjocu
Sent: Monday, July 13, 2020 17:24
To: oiio-dev@lists.openimageio.org <oiio-dev@lists.openimageio.org>
Subject: OIIO DLL loading failure because of dbghelp.dll (used by dbgeng.dll)

Hello,

This is my second email to you.

I am building OIIO through Vcpkg, CMake and Visual Studio 2019. Vcpkg currently 
builds OIIO 2.1.16.0, and I have used "core, libraw, opencolorio, openjpeg, 
webp, tools" components/flags in building OIIO. I have used the Vcpkg toolchain 
in CMake to generate the VS solution (projects) for OIIO, and have added the 
modifications discussed in the first email (reading DPX from memory & fixing 
Windows long paths) onto OIIO release 2.1.17.0, then built the final 
"OpenImageIO.dll" and "OpenImageIO_Util.dll".

We want to use OIIO in our products that deploy/install on multiple Windows 
versions (mostly servers): Windows Server 2008 R2, Windows Server 2012 R2, 
Windows Server 2016, Windows Server 2019, Windows Server 10 different flavors, 
Windows 7 SP3 -- all 64-bit and our products are 64-bit. While testing on 
different Windows machines and environments, there is a Windows 10 machine in 
that OIIO fails to load with the following message:
"The procedure entry point SymEnumSymbolsExW could not be located in the 
dynamic link library
C:\WINDOWS\SYSTEM32\dbgeng.dll"
The culprit is actually "dbghelp.dll" used by "dbgeng.dll". As an initial fix, 
I have added "dbghelp.dll" into the installer, but this seems to cause the 
installer to fail on Win Server 2016. It seems to me that different versions of 
dbgeng.dll in the OS need specific versions of dbghelp.dll, with other DLL on 
the cain of dependecies.

So, my questions are:

  *   Is there a was to disable the OIIO dependency on "dbgeng.dll" (e.g. a 
compile switch)? -- this would be our preferred option
  *   If not, has anyone encountered a problem like this and has another 
fix/workaround?

Thank you,
Radu Arjocu
Software Engineer • Masstech Innovations Inc. • 
www.masstech.com<http://www.masstech.com><http://www.masstech.com>
_______________________________________________
Oiio-dev mailing list
Oiio-dev@lists.openimageio.org
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to