Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Win32::FileOp issues

by bulk88 (Priest)
on Mar 06, 2014 at 04:22 UTC ( [id://1077178]=note: print w/replies, xml ) Need Help??


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.

Replies are listed 'Best First'.
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.

      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.

        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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1077178]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2024-04-26 05:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found