exiv0.26 with VS2015 Professional
Added by Anonymous over 4 years ago
Hi all!
I am fairly new to C++ and Exiv2. I am trying to include Exiv in my Visual Studio 2015 Professional application using pre-built binaries downloaded from [[http://www.exiv2.org/builds/exiv2-0.26-msvc.tar.gz]].
- I have added the path C:\dist\2015\x64\dll\Release\bin to System variables.
- In Visual Studio 2015, I have added the path C:\dist\2015\x64\dll\Release\include to "Additional Include Directories" in C/C++-->General.
- I have added the path C:\dist\2015\x64\dll\Release\lib to "Additional Library Directories" in Linker-->General.
- I have added the libs namely exiv2.lib, expat.lib, xmp.lib, zlib.lib, zlibstatic.lib in "Additional Dependencies" in Linker-->Input.
There are no build errors but when I try to run the program, it gives an error that this visual studio solution has stopped working. Can anyone please tell me what am I doing wrong?
Thank you
P.S. When I run exiv2.exe from command line in folder C:\dist\2015\x64\dll\Release\bin, it's working fine.
Replies (6)
RE: exiv0.26 with VS2015 Professional - Added by Robin Mills over 4 years ago
I don't know what's wrong. Is it possible to screen share on Skype and we can discuss this one-to-one. I'm on vacation at the moment and will be home on Wednesday next week. I think you should copy the DLLs (expat, zlib and exiv2) into the directory into which you are building yourapp.exe.
RE: exiv0.26 with VS2015 Professional - Added by Anonymous over 4 years ago
I have tried your suggestion of copying the DLLs but same problem.
Yes that would be great if you can help me sort it out over Skype.
RE: exiv0.26 with VS2015 Professional - Added by Robin Mills over 4 years ago
We can talk on Thursday. I'm in England. My Skype name is clanmills
If you want to send me your project, I'll take a look at it on my laptop which has Visual Studio 2017 Community Edition while I'm on vacation. Zip your stuff together and use a web services with which you can send a "one off" file. The web service will send me an email with a one-off password to download your code. robin@clanmills.com
RE: exiv0.26 with VS2015 Professional - Added by Anonymous over 4 years ago
Okay I will send you the Visual Studio 2015 Professional project files.
Thanks.
RE: exiv0.26 with VS2015 Professional - Added by Robin Mills over 4 years ago
Haider
Good News. I've reproduced your situation and I have your code working "straight out of the box" (for Release/DLL).
1) I downloaded and installed VS 2015 Community Edition.
2) I've downloaded and unzipped http://www.exiv2.org/builds/exiv2-0.26-msvc.tar.gz into c:\dist
3) I unrared your files into c:\temp\testEXIV and built your code. Builds. Visual Studio Debug/Start Debugging (F5). Crashes in exiv2.dll I changed your input file to a file on my machine c:\\temp\\Stonehenge.jpg Still Crashes. Ummm could it be a release/debug conflict? I think MSVC debug code requires debug DLLs.
4) Update your project to x64/Release
Visual Studio Project/Properties (Alt-F7)
C/C++ General: Additional Include Directories: C:\dist\2015\x64\dll\Release\include;%(AdditionalIncludeDirectories)
Linker: General: Additional Library Directories: C:\dist\2015\x64\dll\Release\lib
Linker: Input: Additional Dependencies: exiv2.lib;%(AdditionalDependencies)
Build Build/BuildSolution F7
Copy the DLLs to the build directory
DOS:
> cd C:\dist\2015\x64\dll\Release\bin > copy *.dll c:\temp\testEXIV2\x64\Release
Program can now run Visual Studio (Debug/Start without Debugging)
Or from DOS:
> cd c:\temp\testEXIV2\x64\Release > testEXIV2
Comment
I am a little surprised by this. I think a debug build of your code requires a debug build of the libraries. I'm not sure why and that's a question for Microsoft. Perhaps debug/release builds use different run-time libraries or something.
RE: exiv0.26 with VS2015 Professional - Added by Anonymous over 4 years ago
Hi Robin,
Thank you very very much for the reply. It was just a matter of Debug vs Release setting in Visual Studio. I updated my project files to Release/x64 and it worked.
Thank you for taking out the time. Really appreciate it.
Regards,
Haider