Changes between Version 1 and Version 2 of Windows98_Support


Ignore:
Timestamp:
Feb 23, 2007 4:44:10 PM (13 years ago)
Author:
bennylp
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Windows98_Support

    v1 v2  
    2323== Disable Win32 Native File I/O in pjlib == 
    2424 
    25 Still in pjlib. Since version 0.5.10, pjlib uses Win32 native {{{CreateFile()/ReadFile()/WriteFile()}}} API for dealing with file I/O, since the ANSI {{{fopen()}}} has a limitation that it can only open a maximum of {{{FOPEN_MAX}}} simultaneous file, and the limit on Windows is about 64. But unfortunately, it looks like {{{CreateFile()}}} doesn't work as expected on Win98, although it doesn't look like it uses any NT specific features. 
     25Still in pjlib. Since version 0.5.10, pjlib uses Win32 native {{{CreateFile()/ReadFile()/WriteFile()}}} API for dealing with file I/O, since the ANSI {{{fopen()}}} has a limitation that it can only open a maximum of {{{FOPEN_MAX}}} simultaneous files, and the limit on Windows is about 64 (or maybe less). But unfortunately, it looks like {{{CreateFile()}}} doesn't work as expected on Win98, although it doesn't look like it uses any NT specific features. 
    2626 
    27 So we need to disable Win32 native file I/O and replace it with ANSI stream. To do this: 
     27So we need to disable Win32 native file I/O and replace it with ANSI stream I/O. To do this: 
    2828 
    2929 1. Open pjlib project 
     
    3535== Disable IoCompletionPort in pjlib == 
    3636 
    37 On '''Debug''' build, the Visual Studio workspace will use socket '''select()''' as the back-end implementation for PJLIB's '''ioqueue'''. This is fine. 
     37On '''Debug''' build, pjlib Visual Studio project will use socket '''select()''' as the back-end implementation for PJLIB's '''ioqueue''', which is fine. 
    3838 
    3939However, on '''Release''' build, the Visual Studio workspace will use WinNT '''IOCompletionPort''' (IOCP) as the '''ioqueue''' backend, and IOCP is not available on Win95/98/ME. 
    4040 
    41 As a workaround for this, open the '''pjlib''' project settings, and exclude {{{ioqueue_winnt.c}}} from the Release build, and include {{{ioqueue_select.c}}} in the Release build. 
     41So we need to exclude IOCP from the build, and use {{{select()}}}. To achieve this: 
     42 1. open the '''pjlib''' project settings,  
     43 1. exclude {{{ioqueue_winnt.c}}} from the Release build, and  
     44 1. include (do not exclude) {{{ioqueue_select.c}}} in the Release build. 
    4245 
    4346 
     
    5154 
    5255 
     56= Problems? = 
     57 
     58These settings have been tested okay, but should you have any problems specific to Win95/98/ME, please ~~complain Sebastian~~ send email to pjsip mailing list for help. 
     59