for 64 bit application it fails for APIs like GetPopupHandle, GetListContents etc.
I don't know whether that happens because all of the files you copied across have broken Ruben's compiler ... or whether its' something that's happening for other reasons.
If you like to provide a small script that demonstrates your problem on 64-bit perls (and is something that I could run), I'll give it a run (using my 64-bit compiler, which I know to be unbroken) and see if I get the same problem. (Probably best to provide the demo in a new thread - I don't think there would be many people still following *this* thread.)
Cheers, Rob | [reply] |
FWIW: Win32::GuiTest version 1.60 compiles & tests okay, if a little noisily using MSVC 64-bit:
[13:21:18.88] C:\Perl64\packages\Win32-GuiTest-1.60>makefile
Checking if your kit is complete...
Looks good
Writing Makefile for Win32::GuiTest
[13:21:26.25] C:\Perl64\packages\Win32-GuiTest-1.60>nmake
Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
cp lib/Win32/GuiTest/GuiTest.pc blib\lib\Win32\GuiTest\GuiTest.pc
cp lib/Win32/GuiTest/Examples.pm blib\lib\Win32\GuiTest\Examples.pm
cp lib/Win32/GuiTest.pm blib\lib\Win32\GuiTest.pm
cp lib/Win32/GuiTest/Cmd.pm blib\lib\Win32\GuiTest\Cmd.pm
C:\perl64\bin\perl.exe -IC:\Perl64\lib -IC:\Perl64\lib C:\Perl
+64\lib\ExtUtils\xsubpp -typemap C:\Perl64\lib\ExtUtils\typemap -type
+map pe
cl -c -nologo -GF -W3 -MD -Zi -Ox -GL -fp:precise -DWIN32 -
+D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DUSE_SITECUSTOMIZE -
+DPRIVL
GuiTest.cpp
GuiTest.xs(135) : warning C4267: '=' : conversion from 'size_t' to 'in
+t', possible loss of data
GuiTest.xs(153) : warning C4244: 'initializing' : conversion from 'WPA
+RAM' to 'int', possible loss of data
GuiTest.xs(154) : warning C4244: 'initializing' : conversion from 'LPA
+RAM' to 'int', possible loss of data
GuiTest.xs(159) : warning C4244: 'initializing' : conversion from 'WPA
+RAM' to 'int', possible loss of data
GuiTest.xs(160) : warning C4244: 'initializing' : conversion from 'LPA
+RAM' to 'BOOL', possible loss of data
GuiTest.xs(174) : warning C4244: 'initializing' : conversion from 'LPA
+RAM' to 'BOOL', possible loss of data
GuiTest.xs(264) : warning C4996: 'sprintf': This function or variable
+may be unsafe. Consider using sprintf_s instead. To disable deprecati
+on, us
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\
+stdio.h(366) : see declaration of 'sprintf'
GuiTest.xs(274) : warning C4244: 'initializing' : conversion from 'WPA
+RAM' to 'int', possible loss of data
GuiTest.xs(278) : warning C4244: 'initializing' : conversion from 'WPA
+RAM' to 'int', possible loss of data
GuiTest.xs(589) : warning C4996: 'sprintf': This function or variable
+may be unsafe. Consider using sprintf_s instead. To disable deprecati
+on, us
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\
+stdio.h(366) : see declaration of 'sprintf'
GuiTest.xs(609) : warning C4244: 'initializing' : conversion from 'LRE
+SULT' to 'int', possible loss of data
GuiTest.xs(1098) : warning C4244: 'initializing' : conversion from 'LR
+ESULT' to 'int', possible loss of data
GuiTest.xs(1115) : warning C4244: '=' : conversion from 'LRESULT' to '
+int', possible loss of data
GuiTest.xs(1152) : warning C4244: '=' : conversion from 'LRESULT' to '
+int', possible loss of data
GuiTest.xs(1410) : warning C4244: 'initializing' : conversion from 'LR
+ESULT' to 'int', possible loss of data
GuiTest.xs(1430) : warning C4244: 'initializing' : conversion from 'LR
+ESULT' to 'int', possible loss of data
GuiTest.xs(1460) : warning C4244: '=' : conversion from 'LRESULT' to '
+int', possible loss of data
GuiTest.xs(1473) : warning C4244: 'initializing' : conversion from 'LR
+ESULT' to 'int', possible loss of data
GuiTest.xs(1510) : warning C4267: '=' : conversion from 'size_t' to 'i
+nt', possible loss of data
GuiTest.xs(1569) : warning C4996: 'strnicmp': The POSIX name for this
+item is deprecated. Instead, use the ISO C++ conformant name: _strnic
+mp. Se
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\
+string.h(217) : see declaration of 'strnicmp'
GuiTest.xs(1753) : warning C4244: '=' : conversion from 'IV' to 'LONG'
+, possible loss of data
cl -c -nologo -GF -W3 -MD -Zi -Ox -GL -fp:precise -DWIN32 -
+D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DWIN64 -DUSE_SITECUSTOMIZE -
+DPRIVL
DibSect.cpp
DibSect.cpp(120) : warning C4334: '<<' : result of 32-bit shift implic
+itly converted to 64 bits (was 64-bit shift intended?)
DibSect.cpp(230) : warning C4996: 'fopen': This function or variable m
+ay be unsafe. Consider using fopen_s instead. To disable deprecation,
+ use _
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\Include\
+stdio.h(237) : see declaration of 'fopen'
Running Mkbootstrap for Win32::GuiTest ()
C:\perl64\bin\perl.exe -MExtUtils::Command -e chmod -- 644 Gui
+Test.bs
C:\perl64\bin\perl.exe -MExtUtils::Mksymlists -e "Mksymlists(
+'NAME'=>\"Win32::GuiTest\", 'DLBASE' => 'GuiTest', 'DL_FUNCS' => { }
+, 'FUN
link -out:blib\arch\auto\Win32\GuiTest\GuiTest.dll -dll -nolog
+o -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"C:\Perl64\lib\CO
+RE" -
Creating library blib\arch\auto\Win32\GuiTest\GuiTest.lib and objec
+t blib\arch\auto\Win32\GuiTest\GuiTest.exp
Generating code
Finished generating code
if exist blib\arch\auto\Win32\GuiTest\GuiTest.dll.manifest mt
+-nologo -manifest blib\arch\auto\Win32\GuiTest\GuiTest.dll.manifest -
+output
if exist blib\arch\auto\Win32\GuiTest\GuiTest.dll.manifest del
+ blib\arch\auto\Win32\GuiTest\GuiTest.dll.manifest
C:\perl64\bin\perl.exe -MExtUtils::Command -e chmod -- 755 bli
+b\arch\auto\Win32\GuiTest\GuiTest.dll
C:\perl64\bin\perl.exe -MExtUtils::Command -e cp -- GuiTest.bs
+ blib\arch\auto\Win32\GuiTest\GuiTest.bs
C:\perl64\bin\perl.exe -MExtUtils::Command -e chmod -- 644 bli
+b\arch\auto\Win32\GuiTest\GuiTest.bs
[13:21:35.09] C:\Perl64\packages\Win32-GuiTest-1.60>nmake test
Microsoft (R) Program Maintenance Utility Version 9.00.21022.08
Copyright (C) Microsoft Corporation. All rights reserved.
C:\perl64\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_ha
+rness(0, 'blib\lib', 'blib\arch')" t/*.t
t/01_basic.t ..... ok
t/02_calc.t ...... skipped: this test is phased out
t/03_cpl.t ....... ok
t/04_std.t ....... ok
t/05_which.t ..... ok
t/06_sendkeys.t .. ok
All tests successful.
Files=6, Tests=72, 8 wallclock secs ( 0.09 usr + 0.03 sys = 0.13 CP
+U)
Result: PASS
If there are any specific tests you want run for comparison purposes ...
With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
| [reply] [d/l] |