Jump to content

user57

Member
  • Posts

    114
  • Joined

  • Last visited

  • Donations

    0.00 USD 
  • Country

    Germany

Everything posted by user57

  1. i saw the sumatra author already made a 3.3.3 version the code to apply was easy there was no big differens https://www.file-upload.net/download-14660525/3.3.3.zip.html i wrote you a personal message you might could try what i wrote if thats the problem a other solution would be a direct contact and look where the code actually really fails the message is multiple times in the sumatra pdf code, cant make the conclusion only with that (that message is also not directly at the load of the the jpg files, it also would have failed at a different spot) that release is new enough i think the latest compatible version was in 2015 now its 08/2021 the 3.3.3 version is from 07/2021 while windows 11 is from 06/2021, the compiler version 16.10 is also 07/2021
  2. thats interesting do it open png ? here are jpg, jpg2000, png, jpgxr https://www.file-upload.net/download-14659681/jpgtests.zip.html
  3. thats what they actually did: there is something called CRT (c runtime) in the past that barly did anything or even was not used the files can be shown in visual studio, and i wrote thembackwards (there is no coding error from my side here) but actually visual studio has this file cached, stored, buildin and do not use my changed files for example i also deleted that function from defition in windows files (and still that CRT still used that function) france had a similiar problem, but he refused to write this in microsoft forums while other said we shouldnt try microsoft knows that (well still some should not lead away instead you should try it anyways neither what microsoft then actually do) this C RunTime then import that functions even if your code is not using that functions
  4. here it goes: https://www.file-upload.net/download-14658807/SumatraPDF3.3.zip.html the sumatra author has added a the jpeg XR format it doesnt look to bad when you compare jpg. jpg2000, orginal, jxr https://en.wikipedia.org/wiki/JPEG_XR#/media/File:Comparison_between_JPEG,_JPEG_2000_and_JPEG_XR.png there is a .jxr file in the zip file nearby
  5. actually i gone for a solution i editet this cpp file to make use of the previos method but then something weird happend it still imported that function so i was like hmm you might forgotten something ? looked no then i debugged the application picture 01 then this message apeared (basicly it just says that i used a different c++ file to compile but actually this message always apears even tho i made > 10 compiles and > 10 changes) , i so looked if this file exits 2 or more times (no), i restarted vs (also compiled the same problem) also a few trys with rebuild solution/project and clean project deleting the entire project from hardrive and tryed again from beginning also lead to that picture that the c++ files doesnt match the compiled file in picture 02 (thats the one in the middle with the assembly code) you can see that it still used that old code (aka InitializeCriticalSectionEx not InitializeCriticalSectionAndSpinCount) even tho the cpp file is edited (picture 03) in picture 03 thats the one that shows the cpp file that should make that code as you see i first uncommented the code that creates InitializeCriticalSectionEx and replaced it with the common function InitializeCriticalSectionAndSpinCount a other method is i tryed to write c errors into that function, but instead of giving me a error message (because the code cant even work) it also compiled that old code with InitializeCriticalSectionEx do it have some kind of backfile ? maybe staticly skipped ? do somebody actually know why this is happening ? (it let me edit other internal cpp files but for some the code applied/changed does simply not happen, the files itself are changed i gone the folders and looked them with other editors)
  6. there was a recent update (my previos version was visual studio 2019 v16.4 updated to vs 2019 v16.10 (the exact version is not known so it must be between those versions) the code i used is windows xp compatible however this "build in trick" still makes my code still incompatible in the past your code useally gone to winmain() in some other codes i reconized that some code was added to my executable that actually was not needed at all so i was wondering why did my executable (what only printed MessageboxA) gone a lot bigger going after that i could understand that this code was added by something else and is executed before my code in winmain() is executed in other compilers or maybe settings? you didnt see this problem and it gone to winmain() directly then the executable was smaller too in my test executable it was just MessageboxA function and no need of executing some "other/more" code this time i had the same problem but this time it made the executable not only inefficient it also made it incompatible (to see here is that microsoft can add this code before your code and make it lets say windows 10 only "this runtime code then gets executed and says "windows 10 only" or "access denied" before your working code is executed) so i took a look what this code actually does do all begins with the function that is called before winmain() extern "C" DWORD WinMainCRTStartup(LPVOID) // <- called before winmain { __security_init_cookie // (unimportant for us) return __scrt_common_main(); // <-- calls next functions } the filename for this code is exe_winmain.cpp and useally is in a directory (or something close) called C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.24.28314\crt\src\vcruntime\exe_winmain.cpp CRT means: C runtime, so we actually know what we deal with in my case it use a unwanted function InitializeCriticalSectionEx (that i actually use nowhere in my code but the c runtime use it) so i looked how and where it do that the code cain is as follows: calls __scrt_common_main ->__scrt_common_main_seh src\vctools\crt\vcstartup\src\eh\i386\secchk.c : (call chain) 0, __SEH_prolog4 1, __scrt_initialize_crt // -> has function __cdecl __vcrt_initialize_locks(VS 16.4works with InitializeCriticalSectionEx and InitializeCriticalSectionAndSpinCount) (VS 16.10 only work with InitializeCriticalSectionEx) -> the VS 16.4 version checks if it can use InitializeCriticalSectionEx if it cant it use InitializeCriticalSectionAndSpinCount (the code use a function called try_get_function() to do so) VC\Tools\MSVC\14.29.30037\crt\src\vcruntime\locks.cpp this is the function with more details: (static void* __cdecl try_get_function( function_id const id, char const* const name, module_id const* const first_module_id, module_id const* const last_module_id ) noexcept ) but that is only important if we want to use InitializeCriticalSectionEx, if we want we just could use InitializeCriticalSectionAndSpinCount and this part would be solved 2, __scrt_acquire_startup_lock 3, _initterm_e (dont have InitializeCriticalSectionEx yet) (then _initterm is done a second time and has InitializeCriticalSectionEx in internal) 4, _initterm <--- second time without _e the function "_initterm" has 2 functions 1 is called __guard_check_icall_fptr (this function checks if the pointer is valid and is unimportant for this case) the other function calls several functions (__xc_a beginning list of functions and __xc_z (end of functions)) the second function in list of __xc_a has InitializeCriticalSectionEx in internal and is called: static _Init_lock (is a class constructor) and leads to _Init_locks _Init_locks is in a file called "xlock.cpp" folder: VC\Tools\MSVC\14.29.30037\crt\src\stl\xlock.cpp (c code) __thiscall _Init_locks::_Init_locks() noexcept { // initialize locks if (InterlockedIncrement(&init) == 0) { for (auto& elem : mtx) { _Mtxinit(&elem); // <- next step we looking for } } } here we look at function _Mtxinit filename that contain _Mtxinit "xmtx.cpp" folder: VC\Tools\MSVC\14.24.28314\crt\src\stl\xmtx.cpp (c code) void __CLRCALL_PURE_OR_CDECL _Mtxinit(_Rmtx* _Mtx) noexcept { // initialize mutex InitializeCriticalSectionEx(_Mtx, 4000, 0); // this variant } here also is the diffrens what has been changed: void __CLRCALL_PURE_OR_CDECL _Mtxinit(_Rmtx* _Mtx) noexcept { // initialize mutex __crtInitializeCriticalSectionEx(_Mtx, 4000, 0); // variant before } the function __crtInitializeCriticalSectionEx has a check if it do use InitializeCriticalSectionEx or if it do use InitializeCriticalSectionAndSpinCount (xp compatible) extern "C" BOOL __cdecl __crtInitializeCriticalSectionEx( LPCRITICAL_SECTION const lpCriticalSection, DWORD const dwSpinCount, DWORD const Flags) { // use InitializeCriticalSectionEx if it is available (only on Windows Vista+)... IFDYNAMICGETCACHEDFUNCTION( PFNINITIALIZECRITICALSECTIONEX, InitializeCriticalSectionEx, pfInitializeCriticalSectionEx) { return pfInitializeCriticalSectionEx(lpCriticalSection, dwSpinCount, Flags); } // ...otherwise fall back to using InitializeCriticalSectionAndSpinCount. InitializeCriticalSectionAndSpinCount(lpCriticalSection, dwSpinCount); return TRUE; } so even if your entire code would just use a single MessageboxA this CRT or "C runtime" starting/calling WinMainCRTStartup beforehand makes your application still incompatible, even if your code 100 % would work noticeable is that "they" can do this not only with a limit to windows vista, 7, 8, 8.1, or 10 they can add incompatible functions to that CRT code thus you might just upgrade your VS/Compiler and your code wont work even if the code is compatible its like a check "do this computer have windows 10" -> access denied -> no code is spawned (even tho your code would work) shame to microsoft for this one (the other code i tryed has a header file that use c++20 style (it are just type converters like you do with templates) but it doesnt use any windows functions)) in that sence that is a compiler question of the c++ style (type converter) not a "missing api" question, but still that CRT used that api even tho i dont have that InitializeCriticalSectionEx in my code and to fix up different types such as handles, int, float etc. for example over a template or type converter, again is a compiler question here is the rest of the callchain (before your code is executed) 5, __scrt_release_startup_lock 6, __scrt_get_dyn_tls_init_callback 7, __scrt_get_dyn_tls_dtor_callback 8 , __scrt_get_show_window_mode 9, _get_narrow_winmain_command_line 10, WinMain(our executable/our code is then executed) <-- here begins/comes our code/programm/app so everybody can easy understand why your code got "blocked" or will just maybe in future, so we know the trick beforehand :-)
  7. i made an update with the new version 06/2021 + https://www.file-upload.net/download-14626832/SumatraPDFWinXP.zip.html http://designingonajuicycup.com/downloads/untested/sumatrapdf_winxp/ removed d2d1.dll toolbar works on windows xp tab title works on xp (new)
  8. working Chromium v87 for windows xp (last official chrome is v49 for windows xp) it was tested more or less and dont seem to include a spyware or weird connections installer is in chinese III (N) is for Next II(B) for Browse (change folder) II(I) for Install (you only need those 3 for the installer) download links: http://designingonajuicycup.com/downloads/untested/ http://www.filedropper.com/minibrowsersetup1071 https://www.file-upload.net/download-14566263/MiniBrowserSetup_1071.exe.html https://easyupload.io/e3fdad https://transferxl.com/08M79dPPgqG1M https://file.io/wFhiH69x9vge https://filebin.net/jqbzrykgxjv8hl2r you can set any language options -> Settings -> Advanced -> Languages then click on "Language" then you should see "English (United States) in "Add languages" you can find your language v87 is newer then windows 7, 8.1, and windows 10 also it is newer then internet explorer 11 (IE11) that means that version of chromium is not to think away, then rather windows 8.1 , IE 11, (>WIN10 Redstone 5) would disapear even if all of that happens there still would be solutions to make that version of chromium work the market share is also speaking for chrome, chrome being the most used browser https://gs.statcounter.com/browser-market-share
  9. http://www.filedropper.com/suma33xp1 bars code was related to d2d1.dll but here goes to toolbar the vs2019 (with upgrades) creates a lot of sse commands , the cpu might not support them ?
  10. we actually could rewrite the chrome code to not have dwrite while being fully functional https://www.filedropper.com/chrome76filestoreplace-nodwrite_1 this code even work on newer chrome versions probaly current newest v.84, but that leads into other dependency´s besides dwrite.dll chrome 76 files to replace - no dwrite.zip
  11. actually i never done a update for windows 3.11 never to 95 never to 98 but at some point i moved to windows 98 se i never made any update to windows 2000 one time i switched from nt4.0 to nt5.0 but i rather call that a new os update the first updates i ever made where on XP for example the move to IE8 at some point in installed win7 because with windows vista i had no good experiments in 2015 i downloaded win7 from ms server and see there what it got ? windows 7 with IE8 at this time i long installed google chrome, firefox and opera but always when chrome, firefox or opera showed something not currectly i started up the IE8 and looked from there and see there the IE8 in 2015 + showed the website rightly , instead of chrome what had 1 title not showed and i got confused by the view now the end being called in 2020 raise questions
  12. how about adding a pe64 compatible gui/interface its a pe32 header with x64 support called PE32+ magic numbers being 0x10b PE32 0x20b PE32+ norms would be solved with a few if statements the gui partly just would need 16 digits/signs https://docs.microsoft.com/de-de/windows/win32/debug/pe-format?redirectedfrom=MSDN#optional_header__image_only_
  13. hello Dibya i can offer some help in the kernel ex for windows xp i got knowlegue in debugging, assembly, win32 api, pe header , c/c++, masm if you want i offer free help to your project i just need a live contact to share the requied informations , like methods that where used (dll wrapper, pe edits, sections, norms that we use, masm) code that being shared
×
×
  • Create New...