j7n Posted November 26, 2021 Posted November 26, 2021 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 1
Rod Steel Posted November 29, 2021 Posted November 29, 2021 (edited) 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 November 29, 2021 by Rod Steel
j7n Posted November 29, 2021 Author Posted November 29, 2021 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. 1
RamonUn Posted November 29, 2021 Posted November 29, 2021 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. 1
j7n Posted November 30, 2021 Author Posted November 30, 2021 A search for LoadLibraryExW pointed me in the right direction. In Dependency Walker I can use the function Profile -> Start Profiling to see the missing DLLs. http://www.dependencywalker.com/help/html/application_profiling.htm
Rod Steel Posted December 1, 2021 Posted December 1, 2021 (edited) 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 December 1, 2021 by Rod Steel
j7n Posted December 1, 2021 Author Posted December 1, 2021 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.
RamonUn Posted December 1, 2021 Posted December 1, 2021 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.
user57 Posted December 1, 2021 Posted December 1, 2021 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
RamonUn Posted December 1, 2021 Posted December 1, 2021 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. 1
user57 Posted December 2, 2021 Posted December 2, 2021 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
Dixel Posted December 3, 2021 Posted December 3, 2021 (edited) 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 December 3, 2021 by Dixel typo 4
user57 Posted December 4, 2021 Posted December 4, 2021 well the answers sounded like if the question is solved please post the working file and then put it to xp lastest software working list
j7n Posted December 4, 2021 Author Posted December 4, 2021 It is solved in the sense that I was directed to a method of identifying required DLL files by a program. This is useful for other software.
user57 Posted December 15, 2021 Posted December 15, 2021 (edited) 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 December 15, 2021 by user57 1
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now