Hi, I have tested all wxPerl XS modules and all seems to be OK. I can't reproduce the problem.
The only things left to check are: 1) 'use Wx::Perl::Packager;' really is the first line in your script. 2) In the files left behind when the app exits, what is a25e484f72ddea79baa955627d488a39.dll ? You should be able to take a look at the file contents and tell. If it is an ActivePerl dll, you can tell by the last entry in the file which is the location of the debug library. If it is one of the gcc built wxPerl dlls, it should be obvious from the file content. Regards Mark Mark Swayne wrote: > Thank you for your prompt response, Mark. I do use Wx::Perl::Packager, > and it is a great help. Without the benefit of this module, I would not > be able to use WxPerl as a production library--the effort involved in > producing compiled packages would too great. It is an incredibly > useful module, thank you also for the time you've put into developing > and maintaining it. > > I guess I wasn't clear enough in my problem description. The 'rmtree' > error sometimes shows up when a program crashes or dies due to missing > libraries, and Wx::Perl::Packager would be exactly the right tool to use > to address the issue. This isn't what's happening in this case. The > packages get built and run properly, its just that they fail to clean up > after themselves on shutdown. > > After I've built the package, when I click 'Test it' to run my > application, my app runs normally and without any problems. When I exit > the program, perlapp shows the 'rmtree failed' error. When I look in > the temp directory, I find the scratch directory PerlApp created to > cache needed files in. It invariably contains the same set of dlls: > a25e484f72ddea79baa955627d488a39.dll > mingwm10.dll > perl58.dll > wxbase28u_gcc_wxperl.dll > wxmsw28u_adv_gcc_wxperl.dll > wxmsw28u_core_gcc_wxperl.dll > > When the app is running, the following dlls are present: > 0858f617e1b241374d9f120bb26fb7b8.dll > 0a57d12a652a9aa8a9a0b50b63eacf69.dll > 0a5e4c87fa5c54c914abae722e8df846.dll > 106d5d75037d32173224d1fcc756ac31.dll > 1823e8f62785746fd29cf0b06c636600.dll > 27c8e6827f78ba1831292105bb4b6e19.dll > 40264fde9f2a92019910d137c9cc247d.dll > 407508194147155aad116bbb9932f700.dll > 465d2954d90fe6225ea61b3907c91da8.dll > 5304c9fae7d015d0af26a6a68bdda3c7.dll > 541cd9bc8060027290e90d3e07d19dcb.dll > 690d4dd022c4e68f9fdfa754e2bcc404.dll > 6c16bd625d9658445cc3dcebf15967ba.dll > 8093d6335a3324a2d1afe442c6f3c959.dll > 9d97b746759aac7b9b0fe180387eda8b.dll > a07d047c3b9dd390896ae265d899a29b.dll > a0cfb70acbca692b4e0caad1fdfc6c02.dll > a25e484f72ddea79baa955627d488a39.dll > ae04e4f42bab17aaf801b5d019ab471e.dll > ae4c340263b2b4ae26334d8b3c9333dd.dll > b0336f6abf3221f016118aeb84850b97.dll > dc2e187d3b818b8feb5b041e4d3d9fb2.dll > ddbdeb1a290b56117ad8fa58dd1134d5.dll > ead249fbab5879aea60a50b9bd09d33d.dll > f1aaa747ef35cd9d7cd122638684172e.dll > f973edd0dd2693cdbb3dd630590f1d16.dll > mingwm10.dll > perl58.dll > wxbase28u_gcc_wxperl.dll > wxbase28u_net_gcc_wxperl.dll > wxbase28u_xml_gcc_wxperl.dll > wxmsw28u_adv_gcc_wxperl.dll > wxmsw28u_aui_gcc_wxperl.dll > wxmsw28u_core_gcc_wxperl.dll > wxmsw28u_gl_gcc_wxperl.dll > wxmsw28u_html_gcc_wxperl.dll > wxmsw28u_media_gcc_wxperl.dll > wxmsw28u_qa_gcc_wxperl.dll > wxmsw28u_richtext_gcc_wxperl.dll > wxmsw28u_stc_gcc_wxperl.dll > wxmsw28u_xrc_gcc_wxperl.dll > > So far I have one app that exhibits this behavior, that I can't share > due to proprietary blah blah, and no clue how to even start producing a > minimal, sharable test case. I exit my program by calling Close() on > the (only) main window, just like I do in my other wx applications, but > for some reason with this app, I get the error. > > I see I neglected to mention that I am using Alien::Wx::Widgets > 0.32.42.5, Wx 0.79.42.6, and Wx::Perl::Packager 0.10 with Perl 5.8.8, > build 819. > > I'd appreciate any thoughts anyone has. > > Thanks again, > > --Mark Swayne > > Mark Dootson wrote: >> Hi, >> >> Try using module 'Wx::Perl::Packager' >> >> This should solve any problems you have with PerlApp. >> >> Regards >> >> Mark >> >> Mark Swayne wrote: >> >>> I'm having problems with a bound application I wrote using wxperl with >>> perlapp. When I run my program through perlapp's "Test it" interface, I >>> get the error message "rmtree failed because directory is not empty." >>> >>> When I check the temporary directory perlapp uses to cache its unpacked >>> file ins, I can see the wx dlls have not been deleted. I gather that >>> this is happening because the wx dlls can't be deleted, because they >>> haven't been unloaded from memory yet. >>> Since this only happens with some of my perlapp projects, I have reason >>> to hope that there is something I can do when I exit my script that will >>> help signal the OS that I am done with the dlls and they can be >>> unloaded. >>> >>> Does anyone have any suggestions? >>> >>> Thanks, >>> >>> --Mark Swayne >>> >> >> >> >> >> >
