Jump to content

IrfanView JPEG-XL under WinXP


j7n

Recommended Posts

This is a build of IrfanView with preliminary support for the JPEG-XL format. It doesn't look promising because the library is 2.5 MB, and includes some bloat unrelated to image compression. Unsurprisingly, it does not load under WinXP. The usual quick attempts at fixing it and identifying missing DLLs don't work. I can't understand why that is. In Dependency Walker I only see links for KERNEL32 and USER32. On the bottom pane there is an question marker near MSJAVA.DLL, but I don't understand the meaning of this. Any chance it can be made to work?

http://www.irfanview.info/test/iview32_test.zip

Link to comment
Share on other sites


On 11/26/2021 at 9:14 AM, j7n said:

Unsurprisingly, it does not load under WinXP.

Why don't you ask developers of IrfanView about that?

P. S. I tried to launch install file of latest IrfanView - black screen and my computer rebooted. Hmmm, "intersting" software. I knew about it for more then 16 years but never used because i considered it inferior to Fast Stone Viewer.

Also try XnView - maybe it will work in XP.

Edited by Rod Steel
Link to comment
Share on other sites

Any developer today will say that XP is not supported, which is already obvious without the need to waste mental resources on the communication, and that we shouldn't hack any of his files. The tone in which they respond will vary, but its futile to expect actual help. The DLL doesn't load when trying to use regsvr32.exe to test it (LoadLibrary failed), and in Help > Installed PlugIns there is no checkmark in front of it. Like the WebP format, the libraries were not written by Irfan, and therefore come with baggage attached.

I wanted to check out the new image format, to see whether it is worth the discussion it has generated, and also how to identify and fix a DLL file like this one, which doesn't show missing dependencies in Dependency Walker. This situation could occur with another program too. I did change the subsystem version from 6 to 5.

The author of XnView said that he will add support for JPEG-XL only in the "MP" product, which is very bloated with the Qt framework and requires a new OS. I recently tried the Classic version, and it wasn't added.

Sorry to hear that you had difficulties running the program. I've also experienced bluescreens from other normal programs on old XP (the cause was the manifest resource). The cleanest installers are at the bottom of the page after clicking "Other download sites". There is a direct link from Irfan's own site without advertisements to either an EXE or a Zip-package.

Link to comment
Share on other sites

Well actually the developer is nice, from what I see with a Hex editor, it seems that the dll dynamically loads Using LoadLibrary(Ex)W:

api-ms-win-core-synch-l1-2-0.dll, combase.dll, advapi32.dl, mscoree.dll

And some functions of the "fiber local storage" API with (from Kernel32.dll)

and InitializeCriticalSectionEx and some more...

It probably depends on several of those and fails to load under XP. Clearly the developer lost some time to import dynamically all of those.

I think he decided that making the dll XP compatible was too hard and that the compromise he choose is that the DLL would not load under XP and you would have no jxl support, however it will not prevent the rest to work properly.

 

Link to comment
Share on other sites

On 11/29/2021 at 8:48 AM, j7n said:

Any developer today will say that XP is not supported

First: not ANY developer. Most, but not ANY.

Second: then why on front page of  https://www.irfanview.com/  we can see text: Supports Windows XP, Vista, 7, 8, and 10?

P.S. Ask the developer (he's name is Irfan Skiljan). Sometimes developers when doing updates accidentally drop XP support and without nobody tell them this fact, they still think that they program still could run on XP. Example of this is D3DGear.

Edited by Rod Steel
Link to comment
Share on other sites

We've reached a consensus on the official forum that "supported" only covers the base program without optional plugins. There is a WebP plugin that doesn't work in either IrfanView or XnView. A user recently came and hacked it. But that only covered one version, and I found it to be unstable on my computer. And there are probably more plugins that essentially encapsulate 3rd party software with its requirements.

After looking into the module with a hex editor, I noticed what appears to be a dictionary for text compression, with strings such as "New Testament", "Jewish Protest", "regarding the Roman Catholic". These are not that common on the web, and definitely do not occur in picture data.

If a new data format requires a modern computer, I don't think it will go anywhere. It may get used on the web without users being aware of it. I will use the simplest method to convert it into something widely compatible.

Link to comment
Share on other sites

Well I checked with Dependency Viewer and First I saw that it tried to load an invalid file name "|:DISABLED:|", it is actually again, a special workaround for XP, to ensure bad extensions cannot be loaded on this OS, in my case I hex-edited the i_view32.exe file to ensure it still tries to load the dll even on XP.

then using dependency viewer:

Loaded "JPEGUXL.DLL" at address 0x10000000.  Successfully hooked module.
DllMain(0x10000000, DLL_PROCESS_ATTACH, 0x00000000) in "JPEGUXL.DLL" called.
LoadLibraryExW("api-ms-win-core-synch-l1-2-0", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101DF0A3.
LoadLibraryExW("api-ms-win-core-synch-l1-2-0", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
LoadLibraryExW("kernel32", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101DF0A3.
LoadLibraryExW("kernel32", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
LoadLibraryExW("kernel32", 0x00000000, 0x00000000) called from "JPEGUXL.DLL" at address 0x101DF0E5.
LoadLibraryExW("kernel32", 0x00000000, 0x00000000) returned 0x77E40000.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeCriticalSectionEx") called from "JPEGUXL.DLL" at address 0x101DF172 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryExW("api-ms-win-core-fibers-l1-1-1", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101DF0A3.
LoadLibraryExW("api-ms-win-core-fibers-l1-1-1", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsAlloc") called from "JPEGUXL.DLL" at address 0x101DF172 and returned 0x77E6B4E4.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsSetValue") called from "JPEGUXL.DLL" at address 0x101DF172 and returned 0x77E654E5.
LoadLibraryExW("api-ms-win-core-synch-l1-2-0", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101EE4AB.
LoadLibraryExW("api-ms-win-core-synch-l1-2-0", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
LoadLibraryExW("kernel32", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101EE4AB.
LoadLibraryExW("kernel32", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
LoadLibraryExW("kernel32", 0x00000000, 0x00000000) called from "JPEGUXL.DLL" at address 0x101EE4ED.
LoadLibraryExW("kernel32", 0x00000000, 0x00000000) returned 0x77E40000.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeCriticalSectionEx") called from "JPEGUXL.DLL" at address 0x101EE582 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryExW("api-ms-win-core-fibers-l1-1-1", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101EE4AB.
LoadLibraryExW("api-ms-win-core-fibers-l1-1-1", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsAlloc") called from "JPEGUXL.DLL" at address 0x101EE582 and returned 0x77E6B4E4.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsGetValue") called from "JPEGUXL.DLL" at address 0x101EE582 and returned 0x77E620B6.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsSetValue") called from "JPEGUXL.DLL" at address 0x101EE582 and returned 0x77E654E5.
LoadLibraryExW("api-ms-win-core-localization-l1-2-1", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101EE4AB.
LoadLibraryExW("api-ms-win-core-localization-l1-2-1", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "LCMapStringEx") called from "JPEGUXL.DLL" at address 0x101EE582 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "LocaleNameToLCID") called from "JPEGUXL.DLL" at address 0x101EE582 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsAlloc") called from "JPEGUXL.DLL" at address 0x1000CE38 and returned 0x77E6B4E4.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsFree") called from "JPEGUXL.DLL" at address 0x1000CE4F and returned 0x77E4F136.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsGetValue") called from "JPEGUXL.DLL" at address 0x1000CE66 and returned 0x77E620B6.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsSetValue") called from "JPEGUXL.DLL" at address 0x1000CE7D and returned 0x77E654E5.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeCriticalSectionEx") called from "JPEGUXL.DLL" at address 0x1000CE94 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitOnceExecuteOnce") called from "JPEGUXL.DLL" at address 0x1000CEAB and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateEventExW") called from "JPEGUXL.DLL" at address 0x1000CEC2 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateSemaphoreW") called from "JPEGUXL.DLL" at address 0x1000CED9 and returned 0x77E657D6.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateSemaphoreExW") called from "JPEGUXL.DLL" at address 0x1000CEF0 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateThreadpoolTimer") called from "JPEGUXL.DLL" at address 0x1000CF07 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SetThreadpoolTimer") called from "JPEGUXL.DLL" at address 0x1000CF1E and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "WaitForThreadpoolTimerCallbacks") called from "JPEGUXL.DLL" at address 0x1000CF35 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CloseThreadpoolTimer") called from "JPEGUXL.DLL" at address 0x1000CF4C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateThreadpoolWait") called from "JPEGUXL.DLL" at address 0x1000CF63 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SetThreadpoolWait") called from "JPEGUXL.DLL" at address 0x1000CF7A and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CloseThreadpoolWait") called from "JPEGUXL.DLL" at address 0x1000CF91 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlushProcessWriteBuffers") called from "JPEGUXL.DLL" at address 0x1000CFA8 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FreeLibraryWhenCallbackReturns") called from "JPEGUXL.DLL" at address 0x1000CFBF and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetCurrentProcessorNumber") called from "JPEGUXL.DLL" at address 0x1000CFD6 and returned 0x7C85E9ED.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateSymbolicLinkW") called from "JPEGUXL.DLL" at address 0x1000CFED and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetCurrentPackageId") called from "JPEGUXL.DLL" at address 0x1000D004 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetTickCount64") called from "JPEGUXL.DLL" at address 0x1000D01B and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetFileInformationByHandleEx") called from "JPEGUXL.DLL" at address 0x1000D032 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SetFileInformationByHandle") called from "JPEGUXL.DLL" at address 0x1000D049 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetSystemTimePreciseAsFileTime") called from "JPEGUXL.DLL" at address 0x1000D060 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeConditionVariable") called from "JPEGUXL.DLL" at address 0x1000D077 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "WakeConditionVariable") called from "JPEGUXL.DLL" at address 0x1000D08E and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "WakeAllConditionVariable") called from "JPEGUXL.DLL" at address 0x1000D0A5 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SleepConditionVariableCS") called from "JPEGUXL.DLL" at address 0x1000D0BC and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeSRWLock") called from "JPEGUXL.DLL" at address 0x1000D0D3 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "AcquireSRWLockExclusive") called from "JPEGUXL.DLL" at address 0x1000D0EA and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "TryAcquireSRWLockExclusive") called from "JPEGUXL.DLL" at address 0x1000D101 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "ReleaseSRWLockExclusive") called from "JPEGUXL.DLL" at address 0x1000D118 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SleepConditionVariableSRW") called from "JPEGUXL.DLL" at address 0x1000D12F and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateThreadpoolWork") called from "JPEGUXL.DLL" at address 0x1000D146 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SubmitThreadpoolWork") called from "JPEGUXL.DLL" at address 0x1000D15D and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CloseThreadpoolWork") called from "JPEGUXL.DLL" at address 0x1000D174 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CompareStringEx") called from "JPEGUXL.DLL" at address 0x1000D18B and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetLocaleInfoEx") called from "JPEGUXL.DLL" at address 0x1000D1A2 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "LCMapStringEx") called from "JPEGUXL.DLL" at address 0x1000D1B9 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeConditionVariable") called from "JPEGUXL.DLL" at address 0x101C59C2 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SleepConditionVariableCS") called from "JPEGUXL.DLL" at address 0x101C59D0 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "WakeAllConditionVariable") called from "JPEGUXL.DLL" at address 0x101C59DE and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "AreFileApisANSI") called from "JPEGUXL.DLL" at address 0x101EE582 and returned 0x77E7522F.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsFree") called from "JPEGUXL.DLL" at address 0x101EE582 and returned 0x77E4F136.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsFree") called from "JPEGUXL.DLL" at address 0x101DF172 and returned 0x77E4F136.
DllMain(0x10000000, DLL_PROCESS_ATTACH, 0x00000000) in "JPEGUXL.DLL" returned 0 (0x0).
DllMain(0x10000000, DLL_PROCESS_DETACH, 0x00000000) in "JPEGUXL.DLL" called.
DllMain(0x10000000, DLL_PROCESS_DETACH, 0x00000000) in "JPEGUXL.DLL" returned 0 (0x0).
Unloaded "JPEGUXL.DLL" at address 0x10000000.
LoadLibraryW("d:\program files\iview32_test\Plugins\JPEGuXL.DLL") returned NULL. Error: A dynamic link library (DLL) initialization routine failed (1114).

So there is a lot of work to do if you want to fix them all.

At this point it is better to invest in a KernelEx for XP, there is no source available for irfanview anyway so it will be hard to fix.

Link to comment
Share on other sites

france is the guy for the codecs, he certainly can do this 

a problem with france is but that hes often very busy and then get hot quickly hehe

 

but someone not neccesary have to use a external functions or dll´s 

 

 

like a bitmap, a format has a certain norm that it progress, that is then put on screen

if you write it manually to progress that format it is compatible to any OS even win95 and maybe below

 

that missing functions from ramon do not contain any important function to progress a format

unless that dont care about compatibility and just compile some functions you have to progress your code

 

yes the idea to give xp or other os functions is a better way of solving things

Link to comment
Share on other sites

I completely agree that a DLL like this should have almost no dependencies because it is here just to decode, and I am sure that with the source it would not be so hard to make it compatible even with NT3.x/Win9x.

An idea could be to write the jpeg-xl plugin yourself given that the reference encoder/decoder is opensource: https://github.com/libjxl/libjxl/

Not sure where to get the doc to make a plugin.

Also it seems that the provided builds are *almost* XP compatible, so you can use cjxl.exe and djxl.exe command line programs just by changing the required OS value in the PE header (using a hex editor). Actually not exactly I get a crash when trying to decode the IMG_20200308_194050.jxl example file. I am sure that if you build it yourself, with a bit of tuneup, you will be able to get them working.

Link to comment
Share on other sites

if you can set me up a working enviorment i can fix this up, the problem for me is that i dont know how to use the new tools like cmake and the other things

 

the programming part i very likely can solve

 

but anyway that error indicates not the programm/app is the problem

its that JPEGUXL.DLL i googled around it finds such dlls some say they work on xp, but cant confirm

Link to comment
Share on other sites

On 11/29/2021 at 6:48 AM, j7n said:

without the need to waste mental resources on the communication

Nicely put ! May I steal it ? I mean, copy/paste .

Edited by Dixel
typo
Link to comment
Share on other sites

  • 2 weeks later...
On 12/1/2021 at 7:01 PM, RamonUn said:

Well I checked with Dependency Viewer and First I saw that it tried to load an invalid file name "|:DISABLED:|", it is actually again, a special workaround for XP, to ensure bad extensions cannot be loaded on this OS, in my case I hex-edited the i_view32.exe file to ensure it still tries to load the dll even on XP.

then using dependency viewer:

Loaded "JPEGUXL.DLL" at address 0x10000000.  Successfully hooked module.
DllMain(0x10000000, DLL_PROCESS_ATTACH, 0x00000000) in "JPEGUXL.DLL" called.
LoadLibraryExW("api-ms-win-core-synch-l1-2-0", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101DF0A3.
LoadLibraryExW("api-ms-win-core-synch-l1-2-0", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
LoadLibraryExW("kernel32", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101DF0A3.
LoadLibraryExW("kernel32", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
LoadLibraryExW("kernel32", 0x00000000, 0x00000000) called from "JPEGUXL.DLL" at address 0x101DF0E5.
LoadLibraryExW("kernel32", 0x00000000, 0x00000000) returned 0x77E40000.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeCriticalSectionEx") called from "JPEGUXL.DLL" at address 0x101DF172 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryExW("api-ms-win-core-fibers-l1-1-1", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101DF0A3.
LoadLibraryExW("api-ms-win-core-fibers-l1-1-1", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsAlloc") called from "JPEGUXL.DLL" at address 0x101DF172 and returned 0x77E6B4E4.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsSetValue") called from "JPEGUXL.DLL" at address 0x101DF172 and returned 0x77E654E5.
LoadLibraryExW("api-ms-win-core-synch-l1-2-0", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101EE4AB.
LoadLibraryExW("api-ms-win-core-synch-l1-2-0", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
LoadLibraryExW("kernel32", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101EE4AB.
LoadLibraryExW("kernel32", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
LoadLibraryExW("kernel32", 0x00000000, 0x00000000) called from "JPEGUXL.DLL" at address 0x101EE4ED.
LoadLibraryExW("kernel32", 0x00000000, 0x00000000) returned 0x77E40000.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeCriticalSectionEx") called from "JPEGUXL.DLL" at address 0x101EE582 and returned NULL. Error: The specified procedure could not be found (127).
LoadLibraryExW("api-ms-win-core-fibers-l1-1-1", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101EE4AB.
LoadLibraryExW("api-ms-win-core-fibers-l1-1-1", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsAlloc") called from "JPEGUXL.DLL" at address 0x101EE582 and returned 0x77E6B4E4.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsGetValue") called from "JPEGUXL.DLL" at address 0x101EE582 and returned 0x77E620B6.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsSetValue") called from "JPEGUXL.DLL" at address 0x101EE582 and returned 0x77E654E5.
LoadLibraryExW("api-ms-win-core-localization-l1-2-1", 0x00000000, 0x00000800) called from "JPEGUXL.DLL" at address 0x101EE4AB.
LoadLibraryExW("api-ms-win-core-localization-l1-2-1", 0x00000000, 0x00000800) returned NULL. Error: The parameter is incorrect (87).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "LCMapStringEx") called from "JPEGUXL.DLL" at address 0x101EE582 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "LocaleNameToLCID") called from "JPEGUXL.DLL" at address 0x101EE582 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsAlloc") called from "JPEGUXL.DLL" at address 0x1000CE38 and returned 0x77E6B4E4.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsFree") called from "JPEGUXL.DLL" at address 0x1000CE4F and returned 0x77E4F136.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsGetValue") called from "JPEGUXL.DLL" at address 0x1000CE66 and returned 0x77E620B6.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsSetValue") called from "JPEGUXL.DLL" at address 0x1000CE7D and returned 0x77E654E5.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeCriticalSectionEx") called from "JPEGUXL.DLL" at address 0x1000CE94 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitOnceExecuteOnce") called from "JPEGUXL.DLL" at address 0x1000CEAB and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateEventExW") called from "JPEGUXL.DLL" at address 0x1000CEC2 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateSemaphoreW") called from "JPEGUXL.DLL" at address 0x1000CED9 and returned 0x77E657D6.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateSemaphoreExW") called from "JPEGUXL.DLL" at address 0x1000CEF0 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateThreadpoolTimer") called from "JPEGUXL.DLL" at address 0x1000CF07 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SetThreadpoolTimer") called from "JPEGUXL.DLL" at address 0x1000CF1E and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "WaitForThreadpoolTimerCallbacks") called from "JPEGUXL.DLL" at address 0x1000CF35 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CloseThreadpoolTimer") called from "JPEGUXL.DLL" at address 0x1000CF4C and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateThreadpoolWait") called from "JPEGUXL.DLL" at address 0x1000CF63 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SetThreadpoolWait") called from "JPEGUXL.DLL" at address 0x1000CF7A and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CloseThreadpoolWait") called from "JPEGUXL.DLL" at address 0x1000CF91 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlushProcessWriteBuffers") called from "JPEGUXL.DLL" at address 0x1000CFA8 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FreeLibraryWhenCallbackReturns") called from "JPEGUXL.DLL" at address 0x1000CFBF and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetCurrentProcessorNumber") called from "JPEGUXL.DLL" at address 0x1000CFD6 and returned 0x7C85E9ED.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateSymbolicLinkW") called from "JPEGUXL.DLL" at address 0x1000CFED and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetCurrentPackageId") called from "JPEGUXL.DLL" at address 0x1000D004 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetTickCount64") called from "JPEGUXL.DLL" at address 0x1000D01B and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetFileInformationByHandleEx") called from "JPEGUXL.DLL" at address 0x1000D032 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SetFileInformationByHandle") called from "JPEGUXL.DLL" at address 0x1000D049 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetSystemTimePreciseAsFileTime") called from "JPEGUXL.DLL" at address 0x1000D060 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeConditionVariable") called from "JPEGUXL.DLL" at address 0x1000D077 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "WakeConditionVariable") called from "JPEGUXL.DLL" at address 0x1000D08E and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "WakeAllConditionVariable") called from "JPEGUXL.DLL" at address 0x1000D0A5 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SleepConditionVariableCS") called from "JPEGUXL.DLL" at address 0x1000D0BC and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeSRWLock") called from "JPEGUXL.DLL" at address 0x1000D0D3 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "AcquireSRWLockExclusive") called from "JPEGUXL.DLL" at address 0x1000D0EA and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "TryAcquireSRWLockExclusive") called from "JPEGUXL.DLL" at address 0x1000D101 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "ReleaseSRWLockExclusive") called from "JPEGUXL.DLL" at address 0x1000D118 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SleepConditionVariableSRW") called from "JPEGUXL.DLL" at address 0x1000D12F and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CreateThreadpoolWork") called from "JPEGUXL.DLL" at address 0x1000D146 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SubmitThreadpoolWork") called from "JPEGUXL.DLL" at address 0x1000D15D and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CloseThreadpoolWork") called from "JPEGUXL.DLL" at address 0x1000D174 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "CompareStringEx") called from "JPEGUXL.DLL" at address 0x1000D18B and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "GetLocaleInfoEx") called from "JPEGUXL.DLL" at address 0x1000D1A2 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "LCMapStringEx") called from "JPEGUXL.DLL" at address 0x1000D1B9 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "InitializeConditionVariable") called from "JPEGUXL.DLL" at address 0x101C59C2 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "SleepConditionVariableCS") called from "JPEGUXL.DLL" at address 0x101C59D0 and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "WakeAllConditionVariable") called from "JPEGUXL.DLL" at address 0x101C59DE and returned NULL. Error: The specified procedure could not be found (127).
GetProcAddress(0x77E40000 [KERNEL32.DLL], "AreFileApisANSI") called from "JPEGUXL.DLL" at address 0x101EE582 and returned 0x77E7522F.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsFree") called from "JPEGUXL.DLL" at address 0x101EE582 and returned 0x77E4F136.
GetProcAddress(0x77E40000 [KERNEL32.DLL], "FlsFree") called from "JPEGUXL.DLL" at address 0x101DF172 and returned 0x77E4F136.
DllMain(0x10000000, DLL_PROCESS_ATTACH, 0x00000000) in "JPEGUXL.DLL" returned 0 (0x0).
DllMain(0x10000000, DLL_PROCESS_DETACH, 0x00000000) in "JPEGUXL.DLL" called.
DllMain(0x10000000, DLL_PROCESS_DETACH, 0x00000000) in "JPEGUXL.DLL" returned 0 (0x0).
Unloaded "JPEGUXL.DLL" at address 0x10000000.
LoadLibraryW("d:\program files\iview32_test\Plugins\JPEGuXL.DLL") returned NULL. Error: A dynamic link library (DLL) initialization routine failed (1114).

So there is a lot of work to do if you want to fix them all.

At this point it is better to invest in a KernelEx for XP, there is no source available for irfanview anyway so it will be hard to fix.

 

 

can somebody do this again ?

i dont know how to use cmake but somehow i managed to compile jpgxl in part, that jpgxl.dll was compiled it even has a few more exported functions so it might work as replacement

https://www.file-upload.net/download-14780496/test.zip.html

Jpeg_XL.dll goes into "IrfanView\Plugings" (thats where the old jpgxl.dll is)
all brotli files go into "IrfanView" (that brotli is somehow part of that jpgxl), those dlls are not found when put into "plugins" folder thats probaly because the directy it searches are the Irfanview directory or system
vc_redist.x86.exe installs msvcp140.dll (if missing, the redist problem users had recently last time ?) 

 

that decoder/encoder is certainly all os compatible

the problem is probaly that the c-style and new compiler automaticly translate the c code into vista+ functions

 

maybe also bring it into the irfanview forum if no missing functions are detected (what i suspect) if im wrong correct me and we make a next step

 

the only Exported function my compiled Jpeg_XL.dll dont have is "GetPlugInInfo"

that function is probaly added by the IrfanView author/programmer 

if that is the last problem

the IrfanView author very certainly can program his IrfanView to use the Jpeg_Xl.dll i compiled up

that might lead into the IrfanView authors forum

Edited by user57
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...