I'm an insurance agent. I've used a rating program from one company for the last two years, that just this weekend finally dumped out their Vista version, but it seems at the cost of W98se compatability. The prior rating program I used was from a company that let me talk directly to their programmers when there was a problem. This one doesn't, and of course if you mention the W98 word they hang up on you. I have two Thinkpads, an R52 and Z60t with XP where the new version runs fine, but my main desktop computer I do all my work on is W98se. I've managed to keep all programs I need running fine on W98, but I have to solve this problem or I'll have to have two computers running all the time, the second to run one program only.
I've narrowed down what the problem is from the error message, and the W98se version of SHELL32.DLL calls a FOLDERPATH routine from SHFOLDER.DLL. Post WME versions of SHELL32.DLL have a routine built-in to implement what SHFOLDER.DLL does to maintain W98se compatability, but the program has to implement linking the SHFOLDER.DLL, and this apparently was left out by the programmers and the compiler they use. Here's an excerpt from a Microsoft page about this issue . . .
===========================================
"A-2 Use SHGetFolderPath to determine special folder paths
Whenever you access any of the special folders in the following list, your application should use the Win32 APIs to dynamically obtain the proper language-specific folder names. The preferred way to do this is using the SHGetFolderPath API with the appropriate CSIDL constant. This function behaves consistently across Windows 95, Windows 98, Windows NT 4.0, and Windows 2000. This API is redistributable via the SHFOLDER.DLL. Software vendors are encouraged to redistribute this component as much as possible to enable this support on Windows operating systems prior to Windows 2000. Windows 2000 includes this DLL as a protected system file and, as such, this DLL cannot be replaced on Windows 2000 or greater.
Note: To ensure your application can run on Windows 9x, Windows NT 4 and Windows 2000, always link to the SHGetFolderPath implementation in SHFOLDER.DLL. Windows 2000 natively implements SHGetFolderPath in SHELL32.DLL, but other versions of Windows do not include SHGetFolderPath in SHELL32.DLL.
Standard folder CSIDL constant name
Alternate Startup ([user], DBCS) CSIDL_ALTSTARTUP
Alternate Startup folder (All Users profile, DBCS) CSIDL_COMMON_ALTSTARTUP
Application Data ([user] profile) CSIDL_APPDATA
Application Data (All Users Profile) CSIDL_COMMON_APPDATA
Control Panel virtual folder CSIDL_CONTROLS
Cookies folder CSIDL_COOKIES
Desktop (namespace root) CSIDL_DESKTOP
Desktop folder ([user] profile) CSIDL_DESKTOPDIRECTORY
Desktop folder (All Users profile) CSIDL_COMMON_DESKTOPDIRECTORY
Favorites folder ([user] profile) CSIDL_FAVORITES
Favorites folder (All Users profile) CSIDL_COMMON_FAVORITES
Fonts virtual folder CSIDL_FONTS
History folder CSIDL_HISTORY
Internet Cache folder CSIDL_INTERNET_CACHE
Internet virtual folder CSIDL_INTERNET
Local (non-roaming) data repository for apps CSIDL_LOCAL_APPDATA
My Computer virtual folder CSIDL_DRIVES
My Pictures folder CSIDL_MYPICTURES
Network Neighborhood directory CSIDL_NETHOOD
Network Neighborhood root CSIDL_NETWORK
Personal folder ([user] profile) CSIDL_PERSONAL
Printers virtual folder CSIDL_PRINTERS
PrintHood folder ([user] profile) CSIDL_PRINTHOOD
Program Files folder CSIDL_PROGRAM_FILES
Program Files folder for x86 apps on Alpha systems CSIDL_PROGRAM_FILESX86
Programs folder (under Start menu in [user] profile) CSIDL_PROGRAMS
Programs folder (under Start menu in All Users profile) CSIDL_COMMON_PROGRAMS
Recent folder ([user] profile) CSIDL_RECENT
Recycle Bin folder CSIDL_BITBUCKET
SendTo folder ([user] profile) CSIDL_SENDTO
Start menu ([user] profile) CSIDL_STARTMENU
Start menu (All Users profile) CSIDL_COMMON_STARTMENU
Startup folder ([user] profile) CSIDL_STARTUP
Startup folder (All Users profile) CSIDL_COMMON_STARTUP
System folder CSIDL_SYSTEM
System folder for x86 applications on Alpha systems CSIDL_SYSTEMx86
Templates folder ([user] profile) CSIDL_TEMPLATES
User’s profile folder CSIDL_PROFILE
Windows directory or SYSROOT CSIDL_WINDOWS"
========================================
I am not a programmer, but I've been hacking stuff (like disassembling and reassembling assembly language) since CPM days. What I'm wondering is if it would be possible to take the path routine out of SHFOLDER.DLL and put it in the W98se version of SHELL32.DLL? Or maybe incorporate the whole SHFOLDER.DLL as part of the W98se SHELL32.DLL? I've googled the problem and find that programmers have fixed it in some other applications, but I would think that fixing the lack of calling the SHFOLDER.DLL could be overcome by inserting the routine in the W98se version of SHELL32.DLL.
Any ideas or help? TIA.
Need help from Windows DLL programming wizard . . .
Need help from Windows DLL programming wizard . . .
Thinkpads Dream of Selectric Sheep.
-
RealBlackStuff
- Admin
- Posts: 17517
- Joined: Mon Sep 18, 2006 5:17 am
- Location: Mt. Cobb, PA USA
- Contact:
It's not gonna help you directly, but have you tried running all your W98 programs on an XP machine, using XP's built-in compatibility mode?
Rather than trying to keep the old (W98) dog alive, see if XP is not offering you more in terms of all-over performance. XP is also more future-proof than W98, which no longer gets any support from Micro$haft.
Rather than trying to keep the old (W98) dog alive, see if XP is not offering you more in terms of all-over performance. XP is also more future-proof than W98, which no longer gets any support from Micro$haft.
Lovely day for a Guinness! (The Real Black Stuff)
Check out The Boardroom for Parts, Mods and Other Services.
Check out The Boardroom for Parts, Mods and Other Services.
I've been pokemoning around some more on google. Since there are LIB files of both the DLLs in my post, where do you get the LIB files originally? I assume in MSDKs. Are the LIB files used without modification compiled straight into the DLLs? Like I said, I'm not a programmer, but if guided in the right direction I can take it from there. Again TIA.
Thinkpads Dream of Selectric Sheep.
I have four XP pro machines and a number of other HP5700 laptops running Caldera Dos, W95 and W98. This particular motherboard (the one running W98) is one of the last with an ISA slot, as I have a particular soundcard (a 16-bit spidf i/o unit which runs under DOS) that I need to use on it, and as the level of hardware is what it is I continue to maintain W98 on this box. I run DOS programs on everything, and all run DOS nice and fast. I want to run a program modified now to exclude W98, which I see is just a lack of thinking in the progamming implementation of looking for where the files are (from the above list) and not having the program look for the shfolder.dll file. Like I said, gamers have solved this problem for their particular games that have the exact same error message that I get . . .realblackstuff wrote:It's not gonna help you directly, but have you tried running all your W98 programs on an XP machine, using XP's built-in compatibility mode?
Rather than trying to keep the old (W98) dog alive, see if XP is not offering you more in terms of all-over performance. XP is also more future-proof than W98, which no longer gets any support from Micro$haft.
"File is linked to missing export SHELL32.DLL:SHGetFolderPathA"
"SHGetFolderPath is found in SHELL32.DLL under Windows 2K, but under Windows 98 it's found in SHFOLDER.DLL." This is taken from the post I found below.
This is the problem I'd like to correct.
Thanks for your comment.
P.S. Here's someone's post that led me to some inkling of what is going on . . .
"When attempting to build GnuPG 1.4.1rc1 on Windows 98
under MinGW/MSYS, make failed near the end (during the
final dearmor stuff) with message :"The GPG.EXE file
is linked to missing export
SHELL32.dll:SHGetFolderPathA"
The SHGetFolderPath call is made in g10/misc.c
I've done some checking and found that SHGetFolderPath
is found in shell32.dll under Windows 2000, but under
Windows 98 its found in shfolder.dll
After adding -lshfolder to the "LDADD =" line in
g10/Makefile, GnuPG compiled without the fatal error
and passed all 25 checks.
Maybe a check should be done for the OS and the proper
file linked accordingly."
Thinkpads Dream of Selectric Sheep.
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Need help with my thinkpad 380xd, IR network and pcmcia driver issues
by MichaelWeaser » Thu Apr 27, 2017 12:36 pm » in ThinkPad Legacy Hardware - 0 Replies
- 565 Views
-
Last post by MichaelWeaser
Thu Apr 27, 2017 12:36 pm
-
-
-
Fan noise need help
by radiator » Wed May 03, 2017 1:55 am » in ThinkPad T400/410/420 and T500/510/520 Series - 12 Replies
- 876 Views
-
Last post by radiator
Sat May 20, 2017 12:15 am
-
-
-
No Windows Update for Windows 95/98/98SE/ME/2000
by ThinkPad560X » Sat Apr 08, 2017 2:35 am » in Off-Topic Stuff - 29 Replies
- 1371 Views
-
Last post by ThinkPad560X
Fri May 19, 2017 1:57 am
-
-
-
x1 4th Generation with Windows 7 or 5th generation with Windows 10 - which to buy?
by mirc » Wed Apr 19, 2017 11:50 am » in ThinkPad X1/X1C - 5 Replies
- 564 Views
-
Last post by wpyh
Sat Apr 29, 2017 10:32 pm
-
Who is online
Users browsing this forum: No registered users and 2 guests



