|
From: | Amaan Akram |
Subject: | Re: [Openexr-devel] RgbaOutputFile error on MSVC2005? |
Date: | Thu, 26 Mar 2009 16:02:12 +0000 |
User-agent: | Thunderbird 2.0.0.21 (Windows/20090302) |
Hi Many thanks for responding. The test apps seem work fine. I've tried depenency walker before and it always gives me a not-found error on MSVCR80.DLL. I am new to Visual C++, but I find that all of my compiled plugins that do not use EXR can find this library. Compiling my own set of dlls from the VC projects from Openexr.com also give MSVCR80 dll as a missing dependency. I have uploaded some screen grabs from dependency walker. Following is an example of Half.dll, showing a missing lib http://warpedspace.org/temp/dll/not_found2.gif Following is an example of my plugin that depends on EXR libs. What I find interesting in this one is that zlib_dll.dll can find this library, but the other EXR dll's cant. (ignore SICPPSDK.DLL--that loads on execution). http://warpedspace.org/temp/dll/not_found.gif For reference, following is an example of a plugin that does not need EXR, and works (ignore the two missing DLLs--they are linked when the plugin loads) http://warpedspace.org/temp/dll/found.gif I have the MSVC++ distributables installed for 2005 SP1--so still not sure why the dependency many thanks for looking in to this amaan Ger Hobbelt wrote: Hm... did you try running one or more of the test apps included in OpenEXR - to see if those do not turn up this error? (This might be something due to not having the right Microsoft DLLs around or something of that nature.) Also check your executable/DLL using the Dependency Walker tool ( http://www.dependencywalker.com/ ) to see if any DLLs are listed as missing (red lines). (Note: some system DLLs optionally delay-load other system DLLs, which can show up in red - the point is that none of the non-Microsoft DLLs and the binary itself should have _immediate_ children listed as not available in there - unless such is intentional.) In case of further doubt / worry, fetch the sources (which include project files) and compile/build the libs + tools on your own system. My 2 cents at this moment... On Wed, Mar 25, 2009 at 4:37 PM, Amaan Akram <address@hidden> wrote:Hello everyone, I am trying to use OpenEXR in a plugin that I am making for a 3D software to output some data to a file. I am using precompiled libs for MSVC2005 from hebbut.net and link IlmImf.lib and Half.lib to produce a DLL plugin. For reference, I am using the following code in my app ----------code starts------------- 1. Imf::Array2D<Imf::Rgba> pixels(N+1,M+1); 2. pixels[j][i].r = x[i] ; 3. pixels[j][i].g = y[j] ; 4. pixels[j][i].b = z[i] ; 5. Imf::RgbaOutputFile outC("c:\\exr1.exr", Imf::Header(N+1, M+1), Imf::WRITE_RGBA); 6. outC.setFrameBuffer (&pixels[0][0], 1, N+1); 7. outC.writePixels (M+1); ----------code ends------------- The above code compiles without any errors in MSVC2005 SP1. When I take the compiled DLL in to my app, I get an error specific to my application, and the error says "A procedure couldn't be found in library:" It turns out that the error is related to line 5 in my code (RgbaOut...). When I don't have this line in the code, and anything my application picks up the DLL without errors. But as soon as this line is added, I get this strange error. I am not sure if this is something related to the 3D software that I am using, or with my EXR output code. Has anyone else seen something similar happening? I'd be grateful for any pointers many thanks, amaan _______________________________________________ Openexr-devel mailing list address@hidden http://lists.nongnu.org/mailman/listinfo/openexr-devel |
[Prev in Thread] | Current Thread | [Next in Thread] |