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: [email protected] <[email protected]>
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
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org