[ sorry for the formatting ] Hello, > Sorry to be the first to po= st a downer, but I'm still having trouble > building my application usin= g perlapp if I use any 2.6 version of Wx :( Which Windows version is= it? > I've narrowed it down to Wx::Html. If I do a 'use Wx::Html' it= won't > build and I get the error dialog shown at > http://dazz.afoyi.= com/stuff/wxperl_html_error.png Another user (with an older wxPerl v= ersion) reported a crash on exit on Win95 with PerlApp. No idea if this=0D = is related. Regards Mattia =0A=0A=0A=0A_____________________________= _______________________________=0A6X velocizzare la tua navigazione a 56k= ? 6X Web Accelerator di Libero!=0AScaricalo su INTERNET GRATIS 6X http://= www.libero.it=0A
![]() |
0 |
![]() |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Mattia Barbon <mattia.barbon@libero.it> wrote: > [ sorry for the formatting ] > > Hello, > > >>Sorry to be the first to post a downer, but I'm still having trouble >>building my application using perlapp if I use any 2.6 version of Wx :( > > > Which Windows version is it? Sorry, WinXPSP2. >>I've narrowed it down to Wx::Html. If I do a 'use Wx::Html' it won't >>build and I get the error dialog shown at >>http://dazz.afoyi.com/stuff/wxperl_html_error.png > > > Another user (with an older wxPerl version) reported > a crash on exit on Win95 with PerlApp. No idea if this > is related. This happens at "compile" time, not runtime. Regards Darryl -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFC1N1W/XQ6DbmPjokRArjJAJ4lV3V16mqlrRLrM9ZGieyVMyQ5JQCaAyAN GRnPlvNBtcfCDmUFHisuh14= =qpQW -----END PGP SIGNATURE-----
![]() |
0 |
![]() |
On Wed, 13 Jul 2005 18:52:31 +0930 Darryl Ross <spam@afoyi.com> wrote: > >>I've narrowed it down to Wx::Html. If I do a 'use Wx::Html' it won't > >>build and I get the error dialog shown at > >>http://dazz.afoyi.com/stuff/wxperl_html_error.png > > > > > > Another user (with an older wxPerl version) reported > > a crash on exit on Win95 with PerlApp. No idea if this > > is related. > > This happens at "compile" time, not runtime. Yes, however this code: perl -MWx -MWx::Html -e 42 was enough to reproduce the Win95 crash. If PerlApp tries to load the modules it packages, this might cause the problem. But this is trying to guess how PerlApp works. Regards Mattia
![]() |
0 |
![]() |
This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig6F3C9D12046DCB065802E2FF Content-Type: multipart/mixed; boundary="------------040702010402050205070505" This is a multi-part message in MIME format. --------------040702010402050205070505 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Mattia Barbon wrote: > On Wed, 13 Jul 2005 18:52:31 +0930 Darryl Ross <spam@afoyi.com> wrote: > >>>>I've narrowed it down to Wx::Html. If I do a 'use Wx::Html' it won't >>>>build and I get the error dialog shown at >>>>http://dazz.afoyi.com/stuff/wxperl_html_error.png >>> >>> Another user (with an older wxPerl version) reported >>>a crash on exit on Win95 with PerlApp. No idea if this >>>is related. >> >>This happens at "compile" time, not runtime. > > Yes, however this code: > > perl -MWx -MWx::Html -e 42 > > was enough to reproduce the Win95 crash. If PerlApp tries to load > the modules it packages, this might cause the problem. But this is > trying to guess how PerlApp works. Comes straight back to the prompt under WinXP. Digging further, I've narrowed it down to the call to Wx::wx_boot on line 24 of Wx/Html.pm. If I comment that out the application builds without errors but dies with the following error at runtime: Unrecognised character \xEF at /PerlApp/Wx.pm line 1 BEGIN failed--compilation aborted at /PerlApp/WxBrowser.pm line 26 BEGIN failed--compilation aborted at wxbrowser.pl line 30 Line 26 of my WxBrowser.pm is "use Wx qw[:everything];" Line 30 of my wxbrowser.pl is "use WxBrowser;" Playing around in the wx_boot function in the Wx.pm file, if I comment out the call to XSLoader::load on line 144 the crash shown in the screenshot I posted does not occur, but I do get the "perlapp.exe has encountered an error, would you like to send the details to Microsoft" dialog. This could be related to some other module needing that call though. By the way, both those line offsets are for wxperl 0.25. I downloaded a trial version of the latest Perl Dev Kit from Activestate and this problem still occurs, so I believe it would be reproducible if you are able to try. The attached program is the smallest example I could create that demonstrates the problem. Wx 2.4 seems to have some "issues" with not collapsing borders around items that have been hidden (at least when coming from XRC) which is why I'd like to get a 2.6 version working. Regards Darryl --------------040702010402050205070505 Content-Type: application/x-perl; name="wxperl_html_example.pl" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="wxperl_html_example.pl" use Wx; use strict; package MyFrame; use Wx qw[:everything]; use Wx::Html; use base qw(Wx::Frame); use strict; sub new { my( $self, $parent, $id, $title, $pos, $size, $style, $name ) = @_; $parent = undef unless defined $parent; $id = -1 unless defined $id; $title = "" unless defined $title; $pos = wxDefaultPosition unless defined $pos; $size = wxDefaultSize unless defined $size; $name = "" unless defined $name; $style = wxDEFAULT_FRAME_STYLE unless defined $style; $self = $self->SUPER::new( $parent, $id, $title, $pos, $size, $style, $name ); $self->SetTitle("frame_1"); $self->{sizer_1} = Wx::BoxSizer->new(wxVERTICAL); $self->{window_1} = Wx::HtmlWindow->new($self, -1); $self->{window_1}->SetSize(300,300); $self->{window_1}->SetPage('<html><head><title>Test</title></head><body><h1>Hello!</h1><p>Hello World</p></body></html>'); $self->{sizer_1}->Add($self->{window_1}, 1, wxEXPAND, 0); $self->SetAutoLayout(1); $self->SetSizer($self->{sizer_1}); $self->{sizer_1}->Fit($self); $self->{sizer_1}->SetSizeHints($self); $self->Layout(); return $self; } package MyApp; use base qw(Wx::App); use strict; sub OnInit { my( $self ) = shift; Wx::InitAllImageHandlers(); my $frame_1 = MyFrame->new(); $self->SetTopWindow($frame_1); $frame_1->Show(1); return 1; } package main; unless(caller){ my $app = MyApp->new(); $app->MainLoop(); } --------------040702010402050205070505-- --------------enig6F3C9D12046DCB065802E2FF Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFC1cmO/XQ6DbmPjokRAk0kAJ9SBLZBSbLF4jIm3tOuKehKnGOL1QCffOYl JDr+QYld1O6EPxqOOOeaXTo= =u6fc -----END PGP SIGNATURE----- --------------enig6F3C9D12046DCB065802E2FF--
![]() |
0 |
![]() |
Darryl, I think you will be OK loading Wx::Html at runtime - rather than compile, so use require Wx::Html; and PerlApp should work fine. Personally, when I used PerlApp, I never put the Wx distribution (or, for example, DBD modules with a whole range of dll's) in the PerlApp exe. I always installed them directly in the runlib directory which PerlApp shoves in @INC for you. Solves all sorts of PerlApp problems. Regards Mark Darryl Ross wrote: > Mattia Barbon <mattia.barbon@libero.it> wrote: > >>>[ sorry for the formatting ] >>> >>> Hello, >>> >>> >>> >>>>Sorry to be the first to post a downer, but I'm still having trouble >>>>building my application using perlapp if I use any 2.6 version of Wx :( >>> >>> >>> Which Windows version is it? > > > Sorry, WinXPSP2. > > >>>>I've narrowed it down to Wx::Html. If I do a 'use Wx::Html' it won't >>>>build and I get the error dialog shown at >>>>http://dazz.afoyi.com/stuff/wxperl_html_error.png >>> >>> >>> Another user (with an older wxPerl version) reported >>>a crash on exit on Win95 with PerlApp. No idea if this >>>is related. > > > This happens at "compile" time, not runtime. > > Regards > Darryl > ------------------------------------------------------- This SF.Net email is sponsored by the 'Do More With Dual!' webinar happening July 14 at 8am PDT/11am EDT. We invite you to explore the latest in dual core and dual graphics technology at this free one hour event hosted by HP, AMD, and NVIDIA. To register visit http://www.hp.com/go/dualwebinar _______________________________________________ wxperl-users mailing list wxperl-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wxperl-users
![]() |
0 |
![]() |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Mark, Thank you for your suggestion. > I think you will be OK loading Wx::Html at runtime - rather than > compile, so use "require Wx::Html;" and PerlApp should work fine. I have tried this (and just tried it again to be sure) and it still comes up with the same 'The memory could not be "read".' error that it was coming up with before. > Personally, when I used PerlApp, I never put the Wx distribution (or, > for example, DBD modules with a whole range of dll's) in the PerlApp exe. > I always installed them directly in the runlib directory which PerlApp > shoves in @INC for you. Solves all sorts of PerlApp problems. So, if I get this right, you still 'use' the modules, but trim the modules out when building it and just put the dlls (or the .pm files too?) into the app directory? Can you elaborate a little bit more? Regards Darryl -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQFC1f4a/XQ6DbmPjokRAimmAJ9vnKlTjO42V0AV27x+3VTqUILOTACfdN7v POX9X6vjxAsYJHh8+rerjEk= =yGQN -----END PGP SIGNATURE-----
![]() |
0 |
![]() |
Darryl, Using PerlApp 6.0.1, 'require Wx::Html' works OK for me. You also have to 'require' the following modules. rather than 'use': require Wx::Html; require Wx::Grid; require Wx::Calendar; require Wx::Region; require Wx::Socket; require Wx::STC; require Wx::Timer; require Wx::XRC; require Wx::FS; or you'll get the same error. On the RunLib question, PerlApp puts your 'runlib' in the @INC array. So, to keep things perlish, if you have an install directory, installDir, you might put your executable and the perl58.dll in 'installDir\bin'. You can define your 'Run Lib' in PerlApp as a relative path to your executable, so if you define it as '../lib' that means that your installation has to put the relevant module files in installDir\lib. Under installDir\lib, it should look exactly as it does under c:\perl\site\lib (assuming a default ActiveState setup) So you would have installDir\lib\Wx.pm installDir\lib\Wx\Event.pm ..... etc ..... installDir\lib\auto\Wx\Wx.dll installDir\lib\auto\Wx\wxbase26u_net_vc_custom.dll .......etc...... Effectively for Wx you can do a simple copy. (if you're using your own compile of wxPerl, remember not to bother distributing the build and debug files e.g. .lib and .pdb extensions.) The only problem with this is that when you trim 'Wx', you lose all its dependencies - which are Carp; Exporter; Tie::Handle; XSLoader; overload; strict; vars; So you need to add these to your 'Add Modules' section in PerlApp if they're not needed by any other modules. The only disadvantage is that you need to build an installation prog - with InnoSetup for example, but you're probably already doing this anyway. Regards Mark Darryl Ross wrote: > Hi Mark, > > Thank you for your suggestion. > > >>>I think you will be OK loading Wx::Html at runtime - rather than >>>compile, so use "require Wx::Html;" and PerlApp should work fine. > > > I have tried this (and just tried it again to be sure) and it still > comes up with the same 'The memory could not be "read".' error that it > was coming up with before. > > >>>Personally, when I used PerlApp, I never put the Wx distribution (or, >>>for example, DBD modules with a whole range of dll's) in the PerlApp exe. >>>I always installed them directly in the runlib directory which PerlApp >>>shoves in @INC for you. Solves all sorts of PerlApp problems. > > > So, if I get this right, you still 'use' the modules, but trim the > modules out when building it and just put the dlls (or the .pm files > too?) into the app directory? > > Can you elaborate a little bit more? > > Regards > Darryl >
![]() |
0 |
![]() |
This is a multi-part message in MIME format. --------------090300010103090105040402 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Darryl Ross wrote: >>>>>I've narrowed it down to Wx::Html. If I do a 'use Wx::Html' it won't >>>>>build and I get the error dialog shown at >>>>>http://dazz.afoyi.com/stuff/wxperl_html_error.png Hi. FYI, I tried "use"ing all the Wx modules and found there are only four that cause the crash with PerlApp. use Wx; use Wx::App; use Wx::ArtProvider; use Wx::Calendar; use Wx::DateTime; use Wx::DND; #use Wx::DocView; # crash! use Wx::DropSource; use Wx::Event; use Wx::FS; #use Wx::Grid; # crash! use Wx::Help; #use Wx::Html; # crash! use Wx::Locale; use Wx::MDI; use Wx::Menu; use Wx::Perl::Carp; use Wx::Perl::SplashFast; #use Wx::Print; # crash! use Wx::RadioBox; use Wx::Region; use Wx::Socket; use Wx::STC; use Wx::Timer; use Wx::Wx_Exp; use Wx::XRC; > Playing around in the wx_boot function in the Wx.pm file, if I comment > out the call to XSLoader::load on line 144 the crash shown in the > screenshot I posted does not occur, but I do get the "perlapp.exe has > encountered an error, would you like to send the details to Microsoft" > dialog. This could be related to some other module needing that call though. To try to isolate it further, I made a stripped-down little module that mimics how Wx.pm loads all the various DLLs. If you drop the following two files into the same directory, and run "perlapp --dependent PerlAppCrashTest.pl" there, it succeeds unless one of the four commented lines are uncommented. (Even when perlapp crashes, "end of module" is printed.) Apparently something is peculiar about loading DocView.dll, Grid.dll, Html.dll, Print.dll in the PerlApp context that otherwise works fine with all the other XS DLLs... It may also be worth noting that exactly the same XS DLLs succeed/fail to load under PerlApp when using DynaLoader's functions bootstrap() and dl_load_file() to do the loading, instead of XSLoader::load() and Wx::_load_plugin(). PerlAppCrashTest.pl ------------------- #!/usr/bin/perl use PerlAppCrashTest1; #use PerlAppCrashTest2; print STDOUT "end of script\n"; __END__ PerlAppCrashTest1.pm -------------------- package Wx; require XSLoader; XSLoader::load( 'Wx', '0.25' ); Wx::Load(); # Remove the "u" if not using unicode build Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxbase26u_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxbase26u_net_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxbase26u_xml_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_adv_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_core_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_gl_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_html_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_media_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_stc_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_xrc_gcc_custom.dll" ); XSLoader::load( 'Wx::Calendar', '0.01' ); XSLoader::load( 'Wx::DateTime', '0.01' ); XSLoader::load( 'Wx::DND', '0.01' ); #XSLoader::load( 'Wx::DocView', '0.01' ); # crash! XSLoader::load( 'Wx::FS', '0.01' ); #XSLoader::load( 'Wx::Grid', '0.01' ); # crash! XSLoader::load( 'Wx::Help', '0.01' ); #XSLoader::load( 'Wx::Html', '0.01' ); # crash! XSLoader::load( 'Wx::MDI', '0.01' ); #XSLoader::load( 'Wx::Print', '0.01' ); # crash! XSLoader::load( 'Wx::Socket', '0.01' ); XSLoader::load( 'Wx::STC', '0.01' ); XSLoader::load( 'Wx::XRC', '0.01' ); print STDOUT "end of module\n"; 1; __END__ BTW, my previous post to this list regarding PerlApp and the ":allclasses" parameter stopped short. Evidently, the "eval _get_packages();" in import() in Wx.pm is indeed being handled properly by PerlApp. It only crashes there because the static const string returned by _get_packages() includes "use" statements for the four problematic modules. Best Regards, -PWR PS: This was on WinXP SP2 --------------090300010103090105040402 Content-Type: application/x-perl; name="PerlAppCrashTest.pl" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="PerlAppCrashTest.pl" #!/usr/bin/perl use PerlAppCrashTest1; #use PerlAppCrashTest2; print STDOUT "end of script\n"; __END__ --------------090300010103090105040402 Content-Type: text/plain; name="PerlAppCrashTest1.pm" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="PerlAppCrashTest1.pm" package Wx; require XSLoader; XSLoader::load( 'Wx', '0.25' ); Wx::Load(); # Remove the "u" if not using unicode build Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxbase26u_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxbase26u_net_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxbase26u_xml_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_adv_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_core_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_gl_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_html_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_media_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_stc_gcc_custom.dll" ); Wx::_load_plugin( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_xrc_gcc_custom.dll" ); XSLoader::load( 'Wx::Calendar', '0.01' ); XSLoader::load( 'Wx::DateTime', '0.01' ); XSLoader::load( 'Wx::DND', '0.01' ); #XSLoader::load( 'Wx::DocView', '0.01' ); # crash! XSLoader::load( 'Wx::FS', '0.01' ); #XSLoader::load( 'Wx::Grid', '0.01' ); # crash! XSLoader::load( 'Wx::Help', '0.01' ); #XSLoader::load( 'Wx::Html', '0.01' ); # crash! XSLoader::load( 'Wx::MDI', '0.01' ); #XSLoader::load( 'Wx::Print', '0.01' ); # crash! XSLoader::load( 'Wx::Socket', '0.01' ); XSLoader::load( 'Wx::STC', '0.01' ); XSLoader::load( 'Wx::XRC', '0.01' ); print STDOUT "end of module\n"; 1; __END__ --------------090300010103090105040402 Content-Type: text/plain; name="PerlAppCrashTest2.pm" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="PerlAppCrashTest2.pm" package Wx; require DynaLoader; push @Wx::ISA, 'DynaLoader'; Wx->bootstrap( '0.25' ); #Wx::Load(); # Remove the "u" if not using unicode build DynaLoader::dl_load_file( "C:\\Perl\\site\\lib\\auto\\Wx\\wxbase26u_gcc_custom.dll" , 0); DynaLoader::dl_load_file( "C:\\Perl\\site\\lib\\auto\\Wx\\wxbase26u_net_gcc_custom.dll" , 0); DynaLoader::dl_load_file( "C:\\Perl\\site\\lib\\auto\\Wx\\wxbase26u_xml_gcc_custom.dll" , 0); DynaLoader::dl_load_file( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_adv_gcc_custom.dll" , 0); DynaLoader::dl_load_file( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_core_gcc_custom.dll" , 0); DynaLoader::dl_load_file( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_gl_gcc_custom.dll" , 0); DynaLoader::dl_load_file( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_html_gcc_custom.dll" , 0); DynaLoader::dl_load_file( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_media_gcc_custom.dll", 0); DynaLoader::dl_load_file( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_stc_gcc_custom.dll" , 0); DynaLoader::dl_load_file( "C:\\Perl\\site\\lib\\auto\\Wx\\wxmsw26u_xrc_gcc_custom.dll" , 0); push @Wx::Calendar::ISA, 'DynaLoader'; Wx::Calendar ->bootstrap( '0.01' ); push @Wx::DateTime::ISA, 'DynaLoader'; Wx::DateTime ->bootstrap( '0.01' ); push @Wx::DND::ISA, 'DynaLoader'; Wx::DND ->bootstrap( '0.01' ); #push @Wx::DocView::ISA, 'DynaLoader'; Wx::DocView ->bootstrap( '0.01' ); # crash! push @Wx::FS::ISA, 'DynaLoader'; Wx::FS ->bootstrap( '0.01' ); #push @Wx::Grid::ISA, 'DynaLoader'; Wx::Grid ->bootstrap( '0.01' ); # crash! push @Wx::Help::ISA, 'DynaLoader'; Wx::Help ->bootstrap( '0.01' ); #push @Wx::Html::ISA, 'DynaLoader'; Wx::Html ->bootstrap( '0.01' ); # crash! push @Wx::MDI::ISA, 'DynaLoader'; Wx::MDI ->bootstrap( '0.01' ); #push @Wx::Print::ISA, 'DynaLoader'; Wx::Print ->bootstrap( '0.01' ); # crash! push @Wx::Socket::ISA, 'DynaLoader'; Wx::Socket ->bootstrap( '0.01' ); push @Wx::STC::ISA, 'DynaLoader'; Wx::STC ->bootstrap( '0.01' ); push @Wx::XRC::ISA, 'DynaLoader'; Wx::XRC ->bootstrap( '0.01' ); print STDOUT "end of module\n"; 1; __END__ --------------090300010103090105040402--
![]() |
0 |
![]() |