jarmniku
jarmniku

Reputation: 161

The procedure entry point jpeg12_read_raw_data could not be located in the dynamic link library

I am buiding a project that uses libtiff and eventually seems to load libtiff-6.dll at run time. However, it fails to run giving "Entry Point Not Found" error with the message:

The procedure entry point jpeg12_read_raw_data could not be located in the dynamic link library libtiff-6.dll

I assume this is some kind of version mismatch, but can't figure out which versios are wrong and how to control what specific dll versions are loaded at run time. What is strange for me is that jpeg12_read_raw_data doesn't appear to be part of libtiff, but I would assume it is a part of libjpeg.

When I check the "imports" in libtiff-6.dll with command dumpbin libtiff-6.dll /imports, the missing symbol is shown there:

    libjpeg-8.dll
             276A2E6A0 Import Address Table
             276A2E178 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                          7F jpeg12_read_raw_data

I have libjpeg-8.dll installed and located into the same folder as the libtiff-6.dll, so the libtiff probably loads that correct dll. But still, it gives the error.

Any suggestions for the solution?

EDIT: If I look at the libtiff-6.dll with Dependency Walker, it shows jpeg12_read_raw_data as a broken dependency (red). See the attached screenshot. enter image description here

Upvotes: 0

Views: 326

Answers (1)

jarmniku
jarmniku

Reputation: 161

The problem was partially solved by linking libtiff-5.dll instead of libtiff-6.dll. This is because libtiff-5 version does not use those missing 12-bit jpeg functions, whereas libtiff-6 needs them. In this case, I don't need support for 12-bit image files.

Upvotes: 0

Related Questions