Opened 13 years ago
Closed 12 years ago
#3405 closed Support Requests (wontfix)
boost/interprocess is incompatible to Win9x
Reported by: | anonymous | Owned by: | Ion Gaztañaga |
---|---|---|---|
Milestone: | Boost 1.41.0 | Component: | interprocess |
Version: | Boost 1.40.0 | Severity: | Problem |
Keywords: | Cc: |
Description
The use of boost/interprocess makes the resulting binary incompatible to Win98 because of the import of
SetFilePointerEx and GetFileSizeEx
(and it makes the binary fat even if you use only minor features of it... =( )
Change History (4)
comment:1 by , 13 years ago
Component: | None → interprocess |
---|---|
Owner: | set to |
comment:2 by , 13 years ago
not very cool. sorry.
To make boost/interprocess/sync/*_lock.hpp useable under Win98 you not only need to wrap get_file_size and set_file_pointer_ex - you also must overcome a strange assumption set_file_pointer_ex does... It assumes that if you point the file-pointer over the actual size of the file and call SetEndOfFile afterwards, the file not only increases (what is true and documented) - the remaining bytes are initialized by zero. I cant find that this is documented - the documentation for SetFilePointerEx says "leaving the intervening bytes uninitialized" ... but it seems to work under XP ... I would call this a bug... but maybe its not the beauty that counts anyway...
(sorry, but after crawling this part of the boost-code i lost some respect points for the project...)
comment:3 by , 13 years ago
did you know that you can create a memory-mapped files that are backed up by the pageing file instead a concrete file on the harddisc via calling CreateFileMapping with INVALID_HANDLE_VALUE and a normal name? (see MSDN or (recommended to read (as i do just now): "Programming Applications for Microsoft Windows from Jeffrey Richter)) if you do this you have 2 Benefits: a) you dont have to create files in %TEMP% which stayes even if your syncronizing applications are closed (because Windows dump the file if the last application closes it) b) you never have syncronizing files that are invalid (and let the apps hang!) (because one of the syncing apps in the last run crashes (or would stopped by the debugger while developing)) would be very nice if you could update that in your code. thanks a lot.
comment:4 by , 12 years ago
Resolution: | → wontfix |
---|---|
Status: | new → closed |
Windows 95 family is not supported.
Win9x is not really supported. No one is running regression tests on anything earlier than XP as far as I can tell.