You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I expected the two handle values to be equal, since the FdGetOsFHandle pod
documentation says, on failure, "C<$hNativeHandle> is set to
C<INVALID_HANDLE_VALUE>". In strawberry-perl-5.32.1.1-64bit, the handles
are unequal. Program output:
Equivalently, one can see this in a TAP test by adding t/closed.t with the
following content:
use Test::More;
use Win32API::File ();
plan tests=> 1;
closeSTDIN;
is(Win32API::File::INVALID_HANDLE_VALUE, Win32API::File::FdGetOsFHandle(0));
I get this behavior with the preinstalled module and also when building https://github.com/chorny/Win32API-File in the strawberry-perl-5.32.1.1-64bit environment. Win32API::File::INVALID_HANDLE_VALUE is the value that C-level INVALID_HANDLE_VALUE would have in a 32-bit binary, despite this being a
64-bit Perl.
The distribution has code, disabled by default, for regenerating the constants
(search for Myconst2perl and NO_REBUILD). Enabling that code yields one
error and a flurry of warnings:
...
const2perl.h:119:19: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
newconst( sName, "%"IVdf, iValue, newSViv(iValue) );
^
const2perl.h:122:19: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
newconst( sName, "%"IVdf, iValue, newSViv(iValue) );
^
const2perl.h:133:19: warning: invalid suffix on literal; C++11 requires a space between literal and string macro [-Wliteral-suffix]
newconst( sName, "0x%"UVxf, (UV)(pValue), mpSvNew );
^
const2perl.h:99:5: error: extra qualification '_const2perl::' on member '_const2perl' [-fpermissive]
_const2perl::_const2perl( char *sModName ) {
^~~~~~~~~~~
File.xs: In function 'int main(int, char**, char**)':
const2perl.h:143:63: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
#define START_CONSTS( sModName ) _const2perl const2( sModName );
^
File.xs:28:5: note: in expansion of macro 'START_CONSTS'
#if (PERL_REVISION <= 5 && PERL_VERSION < 5) || defined(__CYGWIN__)
^~~~~~~~~~~~
const2perl.h:144:60: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
#define const2perl( const ) const2.mkconst( #const, const )
^
File.xs:40:5: note: in expansion of macro 'const2perl'
# undef _open_osfhandle /* stolen_open_osfhandle() isn't available here */
^~~~~~~~~~
const2perl.h:144:60: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
#define const2perl( const ) const2.mkconst( #const, const )
^
...
The text was updated successfully, but these errors were encountered:
Program:
I expected the two handle values to be equal, since the
FdGetOsFHandle
poddocumentation says, on failure, "C<$hNativeHandle> is set to
C<INVALID_HANDLE_VALUE>". In
strawberry-perl-5.32.1.1-64bit
, the handlesare unequal. Program output:
Equivalently, one can see this in a TAP test by adding
t/closed.t
with thefollowing content:
I get this behavior with the preinstalled module and also when building
https://github.com/chorny/Win32API-File in the
strawberry-perl-5.32.1.1-64bit
environment.Win32API::File::INVALID_HANDLE_VALUE
is the value that C-levelINVALID_HANDLE_VALUE
would have in a 32-bit binary, despite this being a64-bit Perl.
The distribution has code, disabled by default, for regenerating the constants
(search for
Myconst2perl
andNO_REBUILD
). Enabling that code yields oneerror and a flurry of warnings:
The text was updated successfully, but these errors were encountered: