in reply to Win32::FileOp issues
Download the pdb/symbol files for activeperl, http://downloads.activestate.com/ActivePerl/releases/ extract over your activeperl dir. Install Visual Studio IDE or Windbg. Configure the symbol path to point to the symbol server. Start the perl binary from the C debugger. Get C callstack. Post result here or figure the rest out yourself.
Re^2: Win32::FileOp issues
by davide_c (Novice) on Mar 19, 2014 at 14:02 UTC
|
Ok. This was hard, and I hope I did the right thing.
The first problem is, I don't have access to a windows 8 machine, so I had to borrow one.
Then, the machine I borrowed didn't have this problem at all! So I had to revert it to the first one I tried, but I could use it only at random times.
Then I first wanted to try the 'easy way': changing module; but with Tk; Tkx; Win32::FileOp; Win32::GUI I always got some sort of crash, even if the displayed windows were slightly different.
Anyway, I finally managed to install Windbg and had the script crash through it. I hope this is what you meant:
CommandLine: C:\Perl\bin\perl.exe win32gui.pl
Starting directory: e:\bss\testmoduli
************* Symbol Path validation summary **************
Response Time (ms) Location
Deferred SRV*C:\symbols*http://m
+sdl.microsoft.com/download/symbols
Symbol search path is: SRV*C:\symbols*http://msdl.microsoft.com/downlo
+ad/symbols
Executable search path is:
ModLoad: 00400000 00460000 perl.exe
ModLoad: 77e20000 77f88000 ntdll.dll
ModLoad: 77200000 77340000 C:\WINDOWS\SysWOW64\KERNEL32.DLL
ModLoad: 758d0000 7599f000 C:\WINDOWS\SysWOW64\KERNELBASE.dll
ModLoad: 75670000 7570a000 C:\WINDOWS\SysWOW64\apphelp.dll
SHIMVIEW: ShimInfo(Complete)
ModLoad: 77a30000 77aee000 C:\WINDOWS\SysWOW64\MSVCRT.dll
ModLoad: 28000000 28147000 C:\Perl\bin\perl516.dll
ModLoad: 770b0000 771ff000 C:\WINDOWS\SysWOW64\USER32.dll
ModLoad: 76b60000 76bd7000 C:\WINDOWS\SysWOW64\ADVAPI32.dll
ModLoad: 74bd0000 74db5000 C:\WINDOWS\WinSxS\x86_microsoft.windows.c
+ommon-controls_6595b64144ccf1df_6.0.9600.16384_none_a9f4965301334e09\
+COMCTL32.dll
ModLoad: 778e0000 779e8000 C:\WINDOWS\SysWOW64\GDI32.dll
ModLoad: 779f0000 77a2e000 C:\WINDOWS\SysWOW64\sechost.dll
ModLoad: 77c90000 77d41000 C:\WINDOWS\SysWOW64\RPCRT4.dll
ModLoad: 75850000 7586d000 C:\WINDOWS\SysWOW64\SspiCli.dll
ModLoad: 75840000 75849000 C:\WINDOWS\SysWOW64\CRYPTBASE.dll
ModLoad: 757e0000 75831000 C:\WINDOWS\SysWOW64\bcryptPrimitives.dll
(1584.e84): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00000000 ecx=bcaa0000 edx=00000000 esi=7ffde000 edi=0
+0000000
eip=77ed2645 esp=0018faec ebp=0018fb18 iopl=0 nv up ei pl zr n
+a pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=0
+0000246
ntdll!LdrpDoDebuggerBreak+0x2b:
77ed2645 cc int 3
0:000> g
ModLoad: 76fb0000 76fd5000 C:\WINDOWS\SysWOW64\IMM32.DLL
ModLoad: 77500000 775f7000 C:\WINDOWS\SysWOW64\MSCTF.dll
ModLoad: 10000000 10005000 C:\Perl\lib\auto\Cwd\Cwd.dll
ModLoad: 025c0000 0260a000 C:\Perl\site\lib\auto\Win32\GUI\GUI.dll
ModLoad: 76c70000 76cf7000 C:\WINDOWS\SysWOW64\comdlg32.dll
ModLoad: 759b0000 76b53000 C:\WINDOWS\SysWOW64\SHELL32.dll
ModLoad: 77650000 77691000 C:\WINDOWS\SysWOW64\SHLWAPI.dll
ModLoad: 77b40000 77c8e000 C:\WINDOWS\SysWOW64\combase.dll
ModLoad: 751f0000 75267000 C:\WINDOWS\SysWOW64\SHCORE.DLL
ModLoad: 74060000 74066000 C:\WINDOWS\SysWOW64\RICHED32.DLL
ModLoad: 6be10000 6be90000 C:\WINDOWS\SysWOW64\RICHED20.dll
ModLoad: 71af0000 71b04000 C:\WINDOWS\SysWOW64\USP10.dll
ModLoad: 71240000 71271000 C:\WINDOWS\SysWOW64\msls31.dll
ModLoad: 76d00000 76e0b000 C:\WINDOWS\SysWOW64\ole32.dll
ModLoad: 75710000 75719000 C:\WINDOWS\SysWOW64\kernel.appcore.dll
ModLoad: 750f0000 751cc000 C:\WINDOWS\SysWOW64\uxtheme.dll
ModLoad: 003c0000 003f9000 C:\Program Files (x86)\Samsung\Settings\C
+mdServer\WinCRT.dll
ModLoad: 75360000 753be000 C:\WINDOWS\SysWOW64\WINSPOOL.DRV
ModLoad: 76be0000 76c67000 C:\WINDOWS\SysWOW64\OLEAUT32.dll
ModLoad: 77850000 778cd000 C:\WINDOWS\SysWOW64\clbcatq.dll
ModLoad: 750d0000 750e9000 C:\WINDOWS\SysWOW64\dwmapi.dll
ModLoad: 74900000 7496b000 C:\Program Files (x86)\Common Files\micro
+soft shared\ink\tiptsf.dll
ModLoad: 605a0000 607f3000 C:\WINDOWS\SysWOW64\explorerframe.dll
ModLoad: 6ef20000 6ef96000 C:\WINDOWS\SysWOW64\DUser.dll
ModLoad: 65600000 6574b000 C:\WINDOWS\SysWOW64\DUI70.dll
ModLoad: 6aed0000 6b01d000 C:\WINDOWS\SysWOW64\WindowsCodecs.dll
ModLoad: 75290000 7529e000 C:\WINDOWS\SysWOW64\profapi.dll
ModLoad: 73350000 73368000 C:\WINDOWS\SysWOW64\CRYPTSP.dll
ModLoad: 73320000 7334f000 C:\WINDOWS\SysWOW64\rsaenh.dll
ModLoad: 73300000 7331d000 C:\WINDOWS\SysWOW64\bcrypt.dll
ModLoad: 6a8b0000 6aadd000 C:\WINDOWS\SysWOW64\MsftEdit.dll
ModLoad: 75340000 75346000 C:\WINDOWS\SysWOW64\MSIMG32.dll
ModLoad: 6fe60000 6ff29000 C:\Windows\SysWOW64\Windows.Globalization
+.dll
ModLoad: 6fc50000 6fc97000 C:\Windows\SysWOW64\Bcp47Langs.dll
ModLoad: 748d0000 748ef000 C:\WINDOWS\SysWOW64\globinputhost.dll
ModLoad: 73850000 73974000 C:\WINDOWS\SysWOW64\PROPSYS.dll
ModLoad: 77350000 774fc000 C:\WINDOWS\SysWOW64\SETUPAPI.dll
ModLoad: 77600000 7763a000 C:\WINDOWS\SysWOW64\CFGMGR32.dll
ModLoad: 74970000 7499c000 C:\WINDOWS\SysWOW64\xmllite.dll
ModLoad: 6f9b0000 6fa1c000 C:\WINDOWS\SysWOW64\StructuredQuery.dll
ModLoad: 6add0000 6aecc000 C:\Windows\SysWOW64\actxprxy.dll
ModLoad: 74820000 7483f000 C:\Windows\SysWOW64\thumbcache.dll
ModLoad: 6a7e0000 6a8ae000 C:\WINDOWS\SysWOW64\SearchFolder.dll
ModLoad: 70e80000 70e8a000 C:\WINDOWS\SysWOW64\LINKINFO.dll
ModLoad: 64330000 643bb000 C:\Windows\SysWOW64\twinapi.dll
ModLoad: 6fb70000 6fbdc000 C:\Windows\SysWOW64\twinapi.appcore.dll
ModLoad: 6be90000 6bf30000 C:\WINDOWS\SysWOW64\ntshrui.dll
ModLoad: 74520000 7453b000 C:\WINDOWS\SysWOW64\srvcli.dll
ModLoad: 748f0000 748fd000 C:\WINDOWS\SysWOW64\cscapi.dll
ModLoad: 62390000 62529000 C:\WINDOWS\SysWOW64\NetworkExplorer.dll
ModLoad: 752a0000 752c0000 C:\WINDOWS\SysWOW64\WINMM.dll
ModLoad: 75270000 75290000 C:\WINDOWS\SysWOW64\WINMMBASE.dll
ModLoad: 751d0000 751ef000 C:\WINDOWS\SysWOW64\DEVOBJ.dll
ModLoad: 753d0000 753e4000 C:\WINDOWS\SysWOW64\MPR.dll
ModLoad: 6ff70000 6ff79000 C:\WINDOWS\SysWOW64\drprov.dll
ModLoad: 74b80000 74bc2000 C:\WINDOWS\SysWOW64\WINSTA.dll
ModLoad: 6ff50000 6ff61000 C:\WINDOWS\SysWOW64\ntlanman.dll
ModLoad: 6fbe0000 6fbf9000 C:\WINDOWS\SysWOW64\davclnt.dll
ModLoad: 6ff40000 6ff49000 C:\WINDOWS\SysWOW64\DAVHLPR.dll
ModLoad: 74510000 74520000 C:\WINDOWS\SysWOW64\wkscli.dll
ModLoad: 74540000 7454a000 C:\WINDOWS\SysWOW64\netutils.dll
(1584.6c4): Unknown exception - code 000006ba (first chance)
ModLoad: 642c0000 64326000 C:\Windows\SysWOW64\dlnashext.dll
ModLoad: 655c0000 655f6000 C:\Windows\SysWOW64\PlayToDevice.dll
ModLoad: 776b0000 776fd000 C:\WINDOWS\SysWOW64\WS2_32.dll
ModLoad: 776a0000 776a7000 C:\WINDOWS\SysWOW64\NSI.dll
ModLoad: 73400000 73418000 C:\Windows\SysWOW64\DevDispItemProvider.d
+ll
ModLoad: 603c0000 60599000 C:\WINDOWS\SysWOW64\wpdshext.dll
ModLoad: 77700000 7784d000 C:\WINDOWS\WinSxS\x86_microsoft.windows.g
+diplus_6595b64144ccf1df_1.1.9600.16384_none_dadf89385bc5c7d7\gdiplus.
+dll
ModLoad: 61aa0000 61b24000 C:\Windows\SysWOW64\PortableDeviceApi.dll
ModLoad: 76fe0000 77019000 C:\WINDOWS\SysWOW64\WINTRUST.dll
ModLoad: 76e30000 76faf000 C:\WINDOWS\SysWOW64\CRYPT32.dll
ModLoad: 77640000 7764e000 C:\WINDOWS\SysWOW64\MSASN1.dll
ModLoad: 6fa50000 6fa79000 C:\Windows\SysWOW64\PortableDeviceTypes.d
+ll
ModLoad: 64280000 642bc000 C:\WINDOWS\SysWOW64\audiodev.dll
ModLoad: 60180000 603b9000 C:\WINDOWS\SysWOW64\WMVCore.DLL
ModLoad: 60140000 60176000 C:\WINDOWS\SysWOW64\WMASF.DLL
ModLoad: 729d0000 72af4000 C:\Windows\SysWOW64\urlmon.dll
ModLoad: 742f0000 74507000 C:\Windows\SysWOW64\iertutil.dll
ModLoad: 74560000 74724000 C:\Windows\SysWOW64\WININET.dll
ModLoad: 73230000 73239000 C:\WINDOWS\SysWOW64\Secur32.dll
ModLoad: 640a0000 6413f000 C:\Windows\SysWOW64\MrmCoreR.dll
ModLoad: 6fe00000 6fe0f000 C:\WINDOWS\SysWOW64\mssprxy.dll
(1584.1b10): Unknown exception - code 8001010e (first chance)
ModLoad: 74900000 7496b000 C:\Program Files (x86)\Common Files\micro
+soft shared\ink\tiptsf.dll
ModLoad: 605a0000 607f3000 C:\WINDOWS\SysWOW64\explorerframe.dll
ModLoad: 6a8b0000 6aadd000 C:\WINDOWS\SysWOW64\MsftEdit.dll
ModLoad: 75340000 75346000 C:\WINDOWS\SysWOW64\MSIMG32.dll
ModLoad: 6fe60000 6ff29000 C:\Windows\SysWOW64\Windows.Globalization
+.dll
ModLoad: 6fc50000 6fc97000 C:\Windows\SysWOW64\Bcp47Langs.dll
ModLoad: 748d0000 748ef000 C:\WINDOWS\SysWOW64\globinputhost.dll
ModLoad: 74970000 7499c000 C:\WINDOWS\SysWOW64\xmllite.dll
ModLoad: 6add0000 6aecc000 C:\Windows\SysWOW64\actxprxy.dll
ModLoad: 74820000 7483f000 C:\Windows\SysWOW64\thumbcache.dll
ModLoad: 6a7e0000 6a8ae000 C:\WINDOWS\SysWOW64\SearchFolder.dll
ModLoad: 64330000 643bb000 C:\Windows\SysWOW64\twinapi.dll
ModLoad: 6fb70000 6fbdc000 C:\Windows\SysWOW64\twinapi.appcore.dll
ModLoad: 62390000 62529000 C:\WINDOWS\SysWOW64\NetworkExplorer.dll
ModLoad: 752a0000 752c0000 C:\WINDOWS\SysWOW64\WINMM.dll
ModLoad: 75270000 75290000 C:\WINDOWS\SysWOW64\WINMMBASE.dll
ModLoad: 642c0000 64326000 C:\Windows\SysWOW64\dlnashext.dll
ModLoad: 655c0000 655f6000 C:\Windows\SysWOW64\PlayToDevice.dll
ModLoad: 776b0000 776fd000 C:\WINDOWS\SysWOW64\WS2_32.dll
ModLoad: 776a0000 776a7000 C:\WINDOWS\SysWOW64\NSI.dll
(1584.1630): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=6fe068fc ebx=05e6f638 ecx=05e6f5f4 edx=04d1b5f4 esi=00000000 edi=0
+5e6f634
eip=75f44bb3 esp=05e6f5ac ebp=05e6f600 iopl=0 nv up ei pl nz n
+a po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=0
+0010202
SHELL32!GetSyncTransferStatus+0x5d:
75f44bb3 ff501c call dword ptr [eax+1Ch] ds:002b:6fe06918
+=????????
0:013> kb
ChildEBP RetAddr Args to Child
05e6f600 75c66079 05e6f634 05e6f638 0584a6b8 SHELL32!GetSyncTransferSt
+atus+0x5d
05e6f8c4 75a6e121 00000002 05e6f900 00000000 SHELL32!`anonymous namesp
+ace'::_GetItemStatusHelper+0x277
05e6f8e8 75a6e0ce 05e6f994 05e6f900 80004005 SHELL32!CBaseOverlayHandl
+er::_GetItemStatus+0x50
05e6f904 75a6b8b0 0584a6b0 05e6f994 00000011 SHELL32!CBaseOverlayHandl
+er::IsMemberOf+0x1c
05e6f93c 75bed394 05e6f994 00000011 00000064 SHELL32!CFSIconOverlayMan
+ager::_GetFileOverlayInfo+0xa9
05e6f958 75a6e2f6 0069a9f8 05e6f994 00000011 SHELL32!CFSIconOverlayMan
+ager::GetFileOverlayInfo+0x20
05e6fba0 75a6e1b2 00000000 05e6fc64 00000001 SHELL32!CFSFolder::_GetOv
+erlayInfo+0x12c
05e6fbb4 75caa022 04d03b00 00000000 05e6fc64 SHELL32!CFSFolder::GetOve
+rlayIndex+0x21
05e6fc20 75a6ae8f 04c92140 05e6fc64 00000000 SHELL32!`Microsoft::WRL::
+Module<1,Microsoft::WRL::Details::DefaultModule<5> >::Create'::`2'::`
+dynamic atexit destructor for 'module''+0x56c5
05e6fc40 605c2b49 058895f0 04c92140 05e6fc64 SHELL32!CRegFolder::GetOv
+erlayIndex+0x2d
05e6fc5c 605c2ad3 ffffffff 04c92140 00000000 explorerframe!CNscOverlay
+Task::_Extract+0x32
05e6fc78 605b770f 04c91a00 04c92190 00200000 explorerframe!CNscOverlay
+Task::InternalResumeRT+0x32
05e6fc94 75a00665 00c91a00 0000ea60 00696a48 explorerframe!CRunnableTa
+sk::Run+0xab
05e6fcac 759b8a1b 05e6fcfb 00654798 00696a48 SHELL32!CShellTask::TT_Ru
+n+0x2c
05e6fd5c 759b8bc3 020ed3b0 05e6fd78 751f1f86 SHELL32!CShellTaskThread:
+:ThreadProc+0x136
05e6fd68 751f1f86 00696a48 04cc1538 05e6fdf4 SHELL32!CShellTaskThread:
+:s_ThreadProc+0x2b
05e6fd78 77e40e92 020ed3b0 7970f9f1 00654798 SHCORE!ExecuteWorkItemThr
+eadProc+0xe
05e6fdf4 77e3f6c0 020ed3b0 04cc1538 7970fb89 ntdll!RtlpTpWorkCallback+
+0xe6
05e6ff8c 7721495d 00654798 05e6ffdc 77e698ee ntdll!TppWorkerThread+0x4
+87
05e6ff98 77e698ee 00654798 7970fbd9 00000000 KERNEL32!BaseThreadInitTh
+unk+0xe
05e6ffdc 77e698c4 ffffffff 77e5e0f0 00000000 ntdll!__RtlUserThreadStar
+t+0x20
05e6ffec 00000000 77e35658 00654798 00000000 ntdll!_RtlUserThreadStart
++0x1b
The last part (starting from ChildEBP), which I hope is the callstack, was exactly the same for Win32::GUI and Win32::Fileop and Tk, both used through perl.exe or perlapp. | [reply] [d/l] |
|
With that callstack, a WAG says its a shell extension causing problems. The things in the callstack is really beyond my knowledge. IDK what an overlay exactly is. Notice its not even a Perl thread, RtlpTpWorkCallback means its a http://msdn.microsoft.com/en-us/library/windows/desktop/ms684957%28v=vs.85%29.aspx thread. "call dword ptr eax+1Ch" says its a C++ vtable call. eax is supposed to be a pointer to a vtable. 0x1C is an offset to a pointer in it. The C++ classes/method names reveal nothing on Google after a couple minutes of searching. Your original post code
my $struct = pack "LLLpLLLpLpLppLIppLLpILL",
(
88, #'lStructSize' # DWORD
$Handle, #'hwndOwner' # HWND
0, #'hInstance' # HINSTANCE
$lpstrFilter, #'lpstrFilter' # LPCTSTR
0,
0,
# $lpstrCustomFilter, #'lpstrCustomFilter' # LPTSTR
# length $lpstrCustomFilter, #'nMaxCustFilter' # DWORD
#I'm not able to make it work with CustomFilter
$nFilterIndex, #'nFilterIndex' # D
+WORD
$lpstrFile, #'lpstrFile' # LPTSTR
length $lpstrFile, #'nMaxFile' # DWORD
$lpstrFileTitle, #'lpstrFileTitle' # LPTSTR
length $lpstrFileTitle, #'nMaxFileTitle' # DWORD
$lpstrInitialDir, #'lpstrInitialDir' # LPCTSTR
$lpstrTitle, #'lpstrTitle' # LPCTSTR
$Flags, #'Flags' # DWORD
0, #'nFileOffset' # WORD
# 0, #'nFileExtension' # WORD
$nFileExtension, #'nFileExtension' # WORD
$lpstrDefExt, #'lpstrDefExt' # LPCTSTR
0, #'lCustData' # DWORD
0, #'lpfnHook' # LPOFNHOOKPROC
$lpTemplateName #'lpTemplateName' # LPCTSTR
, 0, 1
);
is wrong. L is always 32 bits. HWND->HANDLE->PVOID->void *, 32 or 64 bit type http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751%28v=vs.85%29.aspx. There are more mistakes in that pack code, including missing alignment holes. I wont cover them right now. Remember void *s and handles dont have to be readable memory addresses to be valid data. They can be offsets into a table. Or encrypted with XOR against a (C static) secret value pointers. They can also be DB primary key GUIDs or something. Win32::API uses Q or L for HANDLE/void *s/char *s/etc. See https://metacpan.org/source/BULKDD/Win32-API-0.77/Type.pm#L160. I found https://metacpan.org/source/JENDA/Win32-FileOp-0.16.02/FileOp.pm#L1217 but that is different from your pack() struct above. Looking through Win32::FileOp, nothing looks 64 bit compatible in it. " $Flags = unpack("L", substr $struct, 52, 4);" that is garbage on Win64.
I tried to contact the module's author to no avail. Also the other addresses mentioned in the perldoc bounce back.
Use RT bug tracker, dont send private emails to CPAN/maintainers authors. Its like asking for tech support in random blog posts. I see nothing I can associate with you at rt://Win32::FileOp.
FileOp never calls CommDlgExtendedError. It is commented out. See http://msdn.microsoft.com/en-us/library/windows/desktop/ms646928%28v=vs.85%29.aspx and https://metacpan.org/source/JENDA/Win32-FileOp-0.16.02/FileOp.pm#L1266. Getting that error code and the bool retval of if ($fun->Call($struct)) { should be your first diagnostic. What is your Windows 8 Perl, 32 bit or x64? You didn't mention what the retval of Win32::FileOp::SaveAsDialog/console output is of your sample script in your OP. | [reply] [d/l] [select] |
|
First of all, thanks for taking the time to reply.
With that callstack, a WAG says its a shell extension causing problems. The things in the callstack is really beyond my knowledge. IDK what an overlay exactly is.
from the GetSyncTransferStatus part, my guess is that it's part of some cloud storage software, that overlays an indicator to file icons to specify wether they are in sync or not.
The pc I'm testing has actually 3 of them: Google Drive, Dropbox and Skydrive.
I'm suspecting Skydrive is to blame, as disabling the other two didn't change anything. Can't disable skydrive, though, as it's an integral part of windows 8.1.
Your original post code. .
my $struct = pack "LLLpLLLpLpLppLIppLLpILL", ( 88,.
..snip..
is wrong. I found https://metacpan.org/source/JENDA/Win32-FileOp-0.16.02/FileOp.pm#L1217 but that is different from your pack() struct above. .
That was my first test, as at first I thought the script crashed due to changes to the struct in the windows API. That way I could get a simpler windows that crashed less frequently (I now think that possibly that window has a lower chance of displaying folders that are involved in the icon overlay thing). But probably the problem lies, as you said, in something external, as I get the same crash using other modules (Win32::GUI, Tk, and Tkx).
The question, however, is: why does it crash within perl only? After all, those common dialogs are used everywhere.
Looking through Win32::FileOp, nothing looks 64 bit compatible in it. " $Flags = unpack("L", substr $struct, 52, 4);" that is garbage on Win64.
Right, but I'm using 32bit perl.
Use RT bug tracker, dont send private emails to CPAN/maintainers authors. Its like asking for tech support in random blog posts. I see nothing I can associate with you at rt://Win32::FileOp.
Woops, my mistake. In my defense, I thought that that was the whole point for putting someone's mail in the perldoc.
FileOp never calls CommDlgExtendedError. It is commented out. See http://msdn.microsoft.com/en-us/library/windows/desktop/ms646928%28v=vs.85%29.aspx and https://metacpan.org/source/JENDA/Win32-FileOp-0.16.02/FileOp.pm#L1266. Getting that error code and the bool retval of if ($fun->Call($struct)) { should be your first diagnostic.
indeed, that was the first thing I tried. But on the first call to SaveAsDialog the script runs fine; the bool retval is 1 and CommDlgExtendedError gives 0.
On the second run I get nothing, as the script crashes on $fun->Call($struct) and I cannot get any value out of it.
What is your Windows 8 Perl, 32 bit or x64? You didn't mention what the retval of Win32::FileOp::SaveAsDialog/console output is of your sample script in your OP.
I'm using 32bit perl
The retval of SaveAsDialog, the first time, is the correct filename, as expected. The second time, it crashes before I can get anything
Thanks a lot for your efforts
| [reply] |
|
|
|
|
|