Opened 14 years ago
Closed 13 years ago
#32 closed defect (fixed)
Libpathstrict and DosLoadModule
Reported by: | abwillis | Owned by: | abwillis |
---|---|---|---|
Priority: | minor | Milestone: | general enhancement |
Component: | odin | Version: | |
Severity: | low | Keywords: | |
Cc: |
Description
When DosLoadModule loads a DLL with the name having .DLL it will search for the file minus the DLL in the name. If the name does not have an extension or the extension is in lower case (.dll) then it will load. Odin has a number of obvious uses of DosLoadModule with .DLL. There are some places where the file name is supplied by variable name... we may need to lowercase some variables if there are any reports of failures with libpathstrict.
Change History (5)
comment:1 by , 14 years ago
comment:2 by , 14 years ago
comment:3 by , 14 years ago
Frankly saying, I didn't get the description. From my experience, OS/2 will search for "lib.dll" whether you specify "lib", "lib.dll" or "lib.DLL" (when not using LIBPATHSTRICT=T). With LIBPATHSTRICT=T, it seems to treat "lib.DLL"/"lib.dll" not equal to "lib" and more over it fails to load them if it has already loaded "lib.dll" referred as "lib". Is this what you mean?
Anyway, your corrections definitely make sense WRT #31.
Also, please don't break a single logical changeset to pieces w/o a good reason -- the more revisions you have the more time is necessary to review them which in this case is a waste.
comment:4 by , 13 years ago
Owner: | set to |
---|---|
Severity: | → low |
comment:5 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Here are the ones I have found: Index: custombuild/initterm.cpp =================================================================== --- custombuild/initterm.cpp (revision 21579) +++ custombuild/initterm.cpp (working copy) @@ -111,7 +111,7 @@
+ rc = DosLoadModule(szErrName, sizeof(szErrName), "XXODIN32", &hModule);
Index: twain_32/initterm.cpp =================================================================== --- twain_32/initterm.cpp (revision 21579) +++ twain_32/initterm.cpp (working copy) @@ -122,7 +122,7 @@
+ rc = DosLoadModule( szLoadError, sizeof(szLoadError), "TWAINOS2", &hTWAIN);
@@ -152,7 +152,7 @@
+ rc = DosLoadModule( szLoadError, sizeof(szLoadError), "TWAIN", &hTWAIN);
Index: kernel32/osliblvm.cpp =================================================================== --- kernel32/osliblvm.cpp (revision 21579) +++ kernel32/osliblvm.cpp (working copy) @@ -60,7 +60,7 @@
+ rc = DosLoadModule(szModuleFailure, sizeof(szModuleFailure), "LVM", (HMODULE *)&hModLVM);
Index: kernel32/initkernel32.cpp =================================================================== --- kernel32/initkernel32.cpp (revision 21579) +++ kernel32/initkernel32.cpp (working copy) @@ -228,7 +228,7 @@
+ if( IsDBCSEnv() && DosLoadModule( szModName, sizeof( szModName ), "OS2IM", &imHandle ) == 0 )
Index: peldr/pe.cpp =================================================================== --- peldr/pe.cpp (revision 21579) +++ peldr/pe.cpp (working copy) @@ -260,7 +260,7 @@
+ rc = DosLoadModule(exeName, sizeof(exeName), "PMWIN", &hmodPMWin);
@@ -278,7 +278,7 @@
+ rc = DosLoadModule(errorMod, sizeof(errorMod), "KERNEL32", &hmodKernel32);
@@ -342,7 +342,7 @@
+ rc = DosLoadModule(exeName, sizeof(exeName), "PMWIN", &hmodPMWin);