openexr-devel
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]