[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Openexr-devel] using the openexr C callable interface on Windows
From: |
James Burgess |
Subject: |
Re: [Openexr-devel] using the openexr C callable interface on Windows |
Date: |
Wed, 08 Aug 2007 09:52:28 -0700 |
User-agent: |
Thunderbird 2.0.0.6 (Windows/20070728) |
Welcome to, erm, manifest hell?
So there are a few things that could be going on here. There have been
several versions of the vc8 runtimes and its possible you just don't
have the right one. Applications built against the "vc8 sp1" version of
msvcr80 for instance will not run with the "release to manufacture" version.
You can poke about in the WinSxS folder and see what versions you have.
If you run depends on the dll does it say it can't find msvcr80.dll? The
latest version I have is 8.0.50727.762 which I believe is the "vc8 vista
update" version. OpenEXR 1.4.0 vs2005 binaries seems to be happy with
that. There have been at least three proceeding versions of msvcr80.dll.
Another possibility is the way you are loading the library is going to
require the manifest to be embedded. The documentation on the exact
behavior of manifests uses vague terms as to when dynamic loading would
fail. It does "recommend" the manifest be embedded. I don't believe you
should have to merge the manifest of a dll into your app (although you
can). Instead I think the manifest should be embedded in the dll itself
which is accomplished with the mt.exe tool. Not the "mag tape" tool :-)
- James
Marc-Antoine Desroches wrote:
Thanks for the quick answer.
I already have the vc8 runtimes installed (I also installed the
package you linked to, just in case).
At first, if I try to open the dll I get a message saying that it
can't find msvcr80.dll. If I copy the ms runtime dlls in the same
directory as the openexr dlls I get the R6040 error.
Maybe this is happening because the manifest is not embeded inside the
dll and/or the application loading it (of course it would be difficult
to embed it in my scheme interpreter).
I am not very familiar with the way Windows works with "side by side
assemblies". I think I could make a small dll with an embeded manifest
that dynamically loads IlmImg_dll but that would mean more (and
uglier) code.
Marc-Antoine