PeteK27 Posted September 6, 2005 Posted September 6, 2005 From my perspective, the problem with Shell32.dll is just a variation of what has come to be known as “DLL Hell”.See “The End of DLL Hell” by Rick Anderson.http://msdn.microsoft.com/library/default..../dlldanger1.aspOne of the solutions to the problem, according to Mr. Anderson, is to use what he called “Private” or “side-by-side” DLL’s. In a nutshell this just means putting a copy the DLL that works into the same directory as the troublesome EXE.See also“Implementing Side-by-Side Component Sharing in Applications” by David D'Souza, BJ Whalen, and Peter Wilson.http://msdn.microsoft.com/library/default..../sidebyside.asp>as far as i know shell32.dll is one of the files who will only loaded from the %windir%\system because of a registry entry.I think this would be the case with 16-bit DLL’s. It may also be the case with certain COM/OLE based DLL’s. However shell32.dll is, for the most part, just a standard Win32 DLL. With these types of DLL’s Windows just searches for and loads the required file as I described earlier.>The easiest solution is to keep an Win98SE Shell32.dll in System directory renamed to e.g Shell98.dll. >Use a hexeditor to replace entry Shell32.dll with Shell98.dll. worked perfectly for 5 yearsWhile this is a valid solution, I would hesitate to call it the “easiest” solution. However I would agree that it is unclear at this time which is the best solution. I have corrected problems with the Win98 version of Notepad.exe and a minor issue with Firefox (the Import function fails with the Win95 version of shell32.dll) by placing a copy of the Win98 version of shell32.dll in the same directory as the relevant exe’s. Hopefully others will post here and report their success and/or failure with other applications using one or both methods and we can find out what works best.
Controller Khan Posted September 6, 2005 Posted September 6, 2005 @iWindoze I know the wayback machine. I visited Paul Chitescu`s hp last time 1999 ,remembered the link and posted without searching for itas I don`t administrate Win3.1x machines anymore.So I don`t care much about Win31.x /Win32s issues anymore.( OS/2 came with a much superior Win16 support so I didn`t use Win3.1x myself ).I admit I`m to lazy to search for something like before I post. @PeteK27 >>as far as i know shell32.dll is one of the files who will only loaded from the %windir%\system because of a registry entry.>I think this would be the case with 16-bit DLL’s. It may also be the case with certain COM/OLE based DLL’s. However shell32.dll is, for the most part, just a standard Win32 DLL. With these types of DLL’s Windows just searches for and loads the required file as I described earlier.I changed for a long period of time inf-files of Win9x Setup to exclude somethings etc.simply make life easier for me.HKLM stands for HKEY_LOCAL_MACHINE inside inf-filesin Msbase.inf inside Windows 98 precopy1.cab is a addreg section called [msbase.reg]; List of 32 bit DLLs known to be loaded always from SYSTEM dir( KEY_KNOWNDLLS stands for "SYSTEM\CurrentControlSet\Control\SessionManager\KnownDLLs" )HKLM,%KEY_KNOWNDLLS%,DIGSIG,2,DIGSIG.DLLHKLM,%KEY_KNOWNDLLS%,KERNEL32,,KERNEL32.DLLHKLM,%KEY_KNOWNDLLS%,USER32,,USER32.DLLHKLM,%KEY_KNOWNDLLS%,GDI32,,GDI32.DLLHKLM,%KEY_KNOWNDLLS%,WOW32,,WOW32.DLLHKLM,%KEY_KNOWNDLLS%,WINMM,,WINMM.DLLHKLM,%KEY_KNOWNDLLS%,WINNT,,WINNT.DLLHKLM,%KEY_KNOWNDLLS%,RPCRT4,,RPCRT4.DLLHKLM,%KEY_KNOWNDLLS%,ADVAPI32,,ADVAPI32.DLLHKLM,%KEY_KNOWNDLLS%,COMDLG32,,COMDLG32.DLLHKLM,%KEY_KNOWNDLLS%,CRTDLL,,CRTDLL.DLLHKLM,%KEY_KNOWNDLLS%,SHELL32,,SHELL32.DLL ; shell32 is mentioned.HKLM,%KEY_KNOWNDLLS%,SHSCRAP,,SHSCRAP.DLLHKLM,%KEY_KNOWNDLLS%,LZ32,,LZ32.DLLHKLM,%KEY_KNOWNDLLS%,OLECLI32,,OLECLI32.DLLHKLM,%KEY_KNOWNDLLS%,OLESVR32,,OLESVR32.DLLHKLM,%KEY_KNOWNDLLS%,VERSION,,VERSION.DLLHKLM,%KEY_KNOWNDLLS%,COMCTL32,,COMCTL32.DLLHKLM,%KEY_KNOWNDLLS%,MSNP32,,MSNP32.DLLHKLM,%KEY_KNOWNDLLS%,NWNP32,,NWNP32.DLLHKLM,%KEY_KNOWNDLLS%,MPR,,MPR.DLLHKLM,%KEY_KNOWNDLLS%,MPRSERV,,MPRSERV.DLLHKLM,%KEY_KNOWNDLLS%,MSSHRUI,,MSSHRUI.DLLHKLM,%KEY_KNOWNDLLS%,MSNET32,,MSNET32.DLLHKLM,%KEY_KNOWNDLLS%,NWNET32,,NWNET32.DLLHKLM,%KEY_KNOWNDLLS%,MSPWL32,,MSPWL32.DLLHKLM,%KEY_KNOWNDLLS%,OLE32,,OLE32.DLLHKLM,%KEY_KNOWNDLLS%,OLEAUT32,,OLEAUT32.DLLHKLM,%KEY_KNOWNDLLS%,OLEDLG,,OLEDLG.DLLHKLM,%KEY_KNOWNDLLS%,OLETHK32,,OLETHK32.DLLHKLM,%KEY_KNOWNDLLS%,NETBIOS,,NETBIOS.DLLHKLM,%KEY_KNOWNDLLS%,MSAB32,,MSAB32.DLLHKLM,%KEY_KNOWNDLLS%,NWAB32,,NWAB32.DLLHKLM,%KEY_KNOWNDLLS%,SVRAPI,,SVRAPI.DLLHKLM,%KEY_KNOWNDLLS%,CHOOSUSR,,CHOOSUSR.DLLHKLM,%KEY_KNOWNDLLS%,MSSHRUI,,MSSHRUI.DLLHKLM,%KEY_KNOWNDLLS%,SYNCUI,,SYNCUI.DLLHKLM,%KEY_KNOWNDLLS%,LINKINFO,,LINKINFO.DLLHKLM,%KEY_KNOWNDLLS%,MSVCRT20,,MSVCRT20.DLLHKLM,%KEY_KNOWNDLLS%,RICHED32,,RICHED32.DLLHKLM,%KEY_KNOWNDLLS%,WINSPOOL,,WINSPOOL.DRVHKLM,%KEY_KNOWNDLLS%,MFC30,,MFC30.DLLHKLM,%KEY_KNOWNDLLS%,MFCUIA32,,MFCUIA32.DLLHKLM,%KEY_KNOWNDLLS%,MFCANS32,,MFCANS32.DLLHKLM,%KEY_KNOWNDLLS%,NTDLL,,NTDLL.DLLHKLM,%KEY_KNOWNDLLS%,RASAPI32,,RASAPI32.DLLHKLM,%KEY_KNOWNDLLS%,TAPI32,,TAPI32.DLLHKLM,%KEY_KNOWNDLLS%,UMDM32,,UMDM32.DLL; List of 16 bit DLLs known to be loaded always from SYSTEM dir ( %KEY_KNOWN16% stands for SYSTEM\CurrentControlSet\Control\SessionManager\Known16DLLs )HKLM,%KEY_KNOWN16%,TOOLHELP.DLL,,TOOLHELP.DLLHKLM,%KEY_KNOWN16%,COMPOBJ.DLL,,COMPOBJ.DLLHKLM,%KEY_KNOWN16%,STORAGE.DLL,,STORAGE.DLLHKLM,%KEY_KNOWN16%,OLE2.DLL,,OLE2.DLLHKLM,%KEY_KNOWN16%,OLE2DISP.DLL,,OLE2DISP.DLLHKLM,%KEY_KNOWN16%,TYPELIB.DLL,,TYPELIB.DLLHKLM,%KEY_KNOWN16%,WIN87EM.DLL,,WIN87EM.DLLHKLM,%KEY_KNOWN16%,OLE2NLS.DLL,,OLE2NLS.DLLHKLM,%KEY_KNOWN16%,COMMDLG.DLL,,COMMDLG.DLLHKLM,%KEY_KNOWN16%,COMMCTRL.DLL,,COMMCTRL.DLLHKLM,%KEY_KNOWN16%,LZEXPAND.DLL,,LZEXPAND.DLLHKLM,%KEY_KNOWN16%,VER.DLL,,VER.DLLHKLM,%KEY_KNOWN16%,OLESVR.DLL,,OLESVR.DLLHKLM,%KEY_KNOWN16%,OLECLI.DLL,,OLECLI.DLLHKLM,%KEY_KNOWN16%,UNIDRV.DLL,,UNIDRV.DLLHKLM,%KEY_KNOWN16%,HPPCL.DRV,,HPPCL.DRVHKLM,%KEY_KNOWN16%,FINSTALL.DLL,,FINSTALL.DLLHKLM,%KEY_KNOWN16%,WINOA386.MOD,,WINOA386.MODHKLM,%KEY_KNOWN16%,VGAFULL.3GR,,VGAFULL.3GRHKLM,%KEY_KNOWN16%,MMSYSTEM.DLL,,MMSYSTEM.DLLHKLM,%KEY_KNOWN16%,DIBENG.DLL,,DIBENG.DLLHKLM,%KEY_KNOWN16%,SHELL.DLL,,SHELL.DLLHKLM,%KEY_KNOWN16%,MSVIDEO.DLL,,MSVIDEO.DLLHKLM,%KEY_KNOWN16%,MCIAVI.DRV,,MCIAVI.DRVUnless you delete the registry entries underHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\KnownDLLs (Known16DLLs)Shell32.dll should be only loaded from system directory.(these entries exist part to some extent still under Win2k)loading shell32.dll from different locations can be a bad idea.Everything crashs lot more often (I`ve tried that ).sometimes when an exe extracts during runtime another exeand runs that your solution is only one.I hate this kind applications but one of them is a important progam in our firmand our hardware was incompatible with M$-IE 4 /Win98 ,but my chief wanted thatprogram without buying new computer.Sorry for that long post I want to give precise proof that I know what I`m talking about.
PeteK27 Posted September 7, 2005 Posted September 7, 2005 >Unless you delete the registry entries under>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\KnownDLLs (Known16DLLs)>Shell32.dll should be only loaded from system directory.You are correct. On my heavily modified 98SE system this key has been removed so moving shell32.dll worked for me. However on a normal system this value would have to be removed from the registry for this solution to work. I should have taken the time to test my proposed solution on a stock system. My bad. For those that might be interested, there is additional information here:http://support.microsoft.com/kb/q193067/>loading shell32.dll from different locations can be a bad idea.I’ll admit that this is a less than ideal solution. However I continue to believe that it could be a workable one.>Everything crashs lot more often (I`ve tried that ).In theory (at least according to MS propaganda) this should not happen. But I agree that it probably does. However I suspect that this problem varies considerably from program to program. Therefore I still would be interested in knowing what others have observed – good or bad.>sometimes when an exe extracts during runtime another exe>and runs that your solution is only one.>I hate this kind applications but one of them is a important progam in our firm>and our hardware was incompatible with M$-IE 4 /Win98 ,but my chief wanted that>program without buying new computer.I assume here you are referring to EXE’s that, as they are loading, launch other EXE’s in the background. I agree that these types of applications are very difficult to troubleshoot since it is not always obvious what EXE’s are being started. I believe this is part of the reason why I had problems with Word97. You are probably already aware of it, but I have found Dependency Walker works well in helping to figure out these types of situations.http://www.dependencywalker.com>Sorry for that long post I want to give precise proof that >I know what I`m talking about.I assure you I never doubted your skill. Anyone who knows how to use a hex editor to solve a problem is clearly past the “Windows for Dummies” stage.
Controller Khan Posted September 7, 2005 Posted September 7, 2005 the problem is that this exe e.g blabla1.exe extracts during runtime another exe from itself called e.g blabla2.exestarting only that extracted exe blabla2.exe does not work.So Dependency Walker isn`t a solution as it shows only dllfiles that are directlyimported by an exe.Dependency Walker even does not show dllfiles that are loaded on the fly by a program.The only solution would be disassembling that both exe trying to get the pointswhich blabla1.exe calls inside blabla2.exe and combine both exes.I think this something for something with some time and more experience than me>I assure you I never doubted your skill. Anyone who knows how to use a hex editor to solve a problem is clearly past the “Windows for Dummies” stage.I only wanted to make sure everyone understands what I`m talking about.(English isn`t my mother tongue so my posts might be misunderstanding)
PeteK27 Posted September 8, 2005 Posted September 8, 2005 >So Dependency Walker isn`t a solution as it shows only dllfiles that are directly>imported by an exe.>Dependency Walker even does not show dllfiles that are loaded on the fly by a program.It will if you “Profile” your application (which I admit is not real obvious when you first use the program).Do the following:1) Select File:Open and open your EXE as usual (or drag and drop from Explorer).2) Select Profile:Start Profiling…3) Enter any command line arguments in the “Program arguments:” box if relevant. Most of the time you will leave this blank. Don't worry too much about the other check boxes. 4) Select OK.Dependency Walker will then attempt to run the EXE and show you all the DLLs that are called as the program loads. If the program calls another EXE it will open another window and begin profiling that EXE as well (You may have to minimize the current window to see the other EXE's). It even gives you a running list of functions as they are called.You can also use it to profile control panel applets by opening rundll32.exe and entering the relevant control panel file name as a “program argument”. Amazingly it is even freeware.It is not perfect because a few applications don’t really like to be profiled and will crash while loading. However many times it gets far enough to give you a good idea what the problem is. I use it a lot to figure out what DLL’s I might be missing if an application won’t work.The only downside is it only works with 32 bit apps. Also if a 32 bit DLL thunks over to a 16 bit DLL or calls into a VXD (e.g. a driver) it won’t tell you.There is a somewhat similar 16 bit equivalent called Scanbin. However it is not quite as flexible or polished as Dependency Walker.http://members.aol.com/bellamyjc/en/scanbin.html>the problem is that this exe e.g blabla1.exe extracts during runtime another exe from itself called e.g blabla2.exe>starting only that extracted exe blabla2.exe does not work.I'll admit I am not sure how Dependency Walker would react if a second EXE was actually embedded in the first EXE. I can't recall if I have ever run into this situation. However depending on what the problem is, it may get far enough to figure out what is going on.
Controller Khan Posted September 8, 2005 Posted September 8, 2005 I admit I used Dependency Walker last time somewhere around 1998.Maybe I oversaw that feature.I was happy when everything worktime is money, so most time one must make compromises.A big problem is that many programs are simply bought without asking ourdepartment, so one can only react.A lot of tasks are solved with Makros inside Word etc.Because of this chaos I`m busy keeping everything working.You can`t imagine how strange some programs are.Some e.g a cash department programs loads .386 files (16 bit vxd I think).Some programs work only under Dos because they use memory right after freeing it, something that does not work under Windows.As long as everything works corporate finance department will refuse any increaseof our budget.Fortunatly pcs used for normal office work were migrated to GNU/Linux & Staroffice due to license problems.When I have spare time I look at this>the problem is that this exe e.g blabla1.exe extracts during runtime another exe from itself called e.g blabla2.exe>starting only that extracted exe blabla2.exe does not work.with an up to date version of Dependency Walker.
almawardi Posted January 21, 2006 Posted January 21, 2006 If you want to add show desktop and quick launch bar function in 95 explorer, i have those program somewhere, called SETUPQL.EXE
Adebisi Posted January 21, 2006 Posted January 21, 2006 If you want to add show desktop and quick launch bar function in 95 explorer, i have those program somewhere, called SETUPQL.EXECan you please upload it somewhere.
krick Posted January 22, 2006 Posted January 22, 2006 If you want to add show desktop and quick launch bar function in 95 explorer, i have those program somewhere, called SETUPQL.EXEYou might be interested in installing the Active Desktop Update.It gives you the whole Windows 98 style shell...Installing Active Desktop Update on Windows 95http://www.oldfiles.org.uk/lightspeed/Active_Desktop.htmlAlso, this page has lots of notes on the whole thing includingall the ways you should (and shouldn't) install it...http://wymette.home.att.net/programs/IEDeskUp.txt
erpdude8 Posted January 27, 2006 Posted January 27, 2006 (edited) If you want to add show desktop and quick launch bar function in 95 explorer, i have those program somewhere, called SETUPQL.EXEYou might be interested in installing the Active Desktop Update.It gives you the whole Windows 98 style shell...Installing Active Desktop Update on Windows 95http://www.oldfiles.org.uk/lightspeed/Active_Desktop.htmlAlso, this page has lots of notes on the whole thing includingall the ways you should (and shouldn't) install it...http://wymette.home.att.net/programs/IEDeskUp.txtI have an even better way of installing the IE Active Desktop Update under Windows 95 listed at my Computer Tips for Windows page:http://erpman1.tripod.com/comptips.html(scroll down to near the bottom of the page; I've even included a tip of creating a [.BAT] batch file that will install the desktop update when IE 5.x is already installed)Note that after installing the IE Desktop Update with IE 5.x setup you will NOT see the "Show File Attributes In Detail View" option in the Folder Options {View} tab dialog box. You must add the necessary registry entries to add the File Attributes setting after you install the IE Desktop Update. Edited January 27, 2006 by erpdude8
RJARRRPCGP Posted January 29, 2006 Posted January 29, 2006 (edited) ..what is sleekv2? ============ In a regular 98lite SLEEK and MICRO the win95 shell32.dll is used and the win98 shell32.dll is renamed to shell32.w98. Applications that *require* this windows98 version must be binary patched to access shell32.w98 instead of shell32.dll ... now in sleekv2, the win95 shell32.dll is named shell32.w95 explorer(95).exe is patched to access shell32.w95 instead of shell32.dll shell32.dll in the system folder is now the win98 shell32.dll (ie the same as for chubby). Now some of the newer routines are available for third party applications.Hi ssmokeeThis 98Lite patch, only modify Explorer.exe from Windows 95 to work with Win98 shell32.dll.Windows 98 shell32.dll continue as default. That's not true. 98Lite uses both the Windows 95 explorer.exe and Windows 95 shell32.dll. This is why the dreaded "linked to missing export SHELL32.DLL" problem is occuring. Edited January 29, 2006 by RJARRRPCGP
erpdude8 Posted January 30, 2006 Posted January 30, 2006 That's not true. 98Lite uses both the Windows 95 explorer.exe and Windows 95 shell32.dll. This is why the dreaded "linked to missing export SHELL32.DLL" problem is occuring.RJARRRPCGP is right on. Programs like Win98 Wordpad and the Spider Solitaire game (from Plus!98 and the newer one listed here:http://www.3feetunder.com/files/winme_spider_setup.exeThese programs are not compatible with Win95 shell32.dll and generate those "Linked to missing export SHELL32.DLL" error messages.
almawardi Posted February 12, 2006 Posted February 12, 2006 (edited) You can add quick launch bar in Windows 95 without install Internet Explorer and active desktop! download my zip file attach here, then extract to windows directory, running main executable (ql95.exe), if you having trouble try merge the registry file. or Download original SetupQL.exe from http://almawardi.tripod.com/ QL95.zip Edited June 15, 2020 by almawardi update dead link
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now