From: DH <cra...@ya...> - 2004-07-28 11:10:30
|
Just an FYI for extensions developers I just compiled Wx-0.20 --unicode with WXMSW-2.5.2 the other day ( http://crazyinsomniac.perlmonk.org/perl/ppm/5.8/Wx.ppd ) and I was trying to compile Wx::DialUpManager and I ran into cl -c -IC:\pache\Perl\site\lib\Wx\build -I. -IC:\pache\Perl\site\lib\Wx -IC:\wxWidgets\include -IC:\wxWidgets\lib \vc_dll\mswu -IC:\wxWidgets\contrib\include -GF -TP /c /nologo /TP /MD /O2 /W4 /GR /GX -MD -DNDEBUG -O1 -DVERSION=\"0. 03\" -DXS_VERSION=\"0.03\" "-IC:\pache\Perl\lib\CORE" -DWXPL_EXT /DWIN32 /D__WXMSW__ /D_UNICODE /DWXUSINGDLL /D_WINDOWS DialUpManager.c Command line warning D4025 : overriding '/O2' with '/O1' DialUpManager.c C:\pache\Perl\site\lib\Wx\cpp/helpers.h(370) : warning C4189: 'my_perl' : local variable is initialized but not referenced C:\pache\Perl\site\lib\Wx\cpp/helpers.h(386) : warning C4189: 'my_perl' : local variable is initialized but not referenced C:\pache\Perl\site\lib\Wx\cpp/helpers.h(390) : warning C4189: 'my_perl' : local variable is initialized but not referenced DialUpManager.c(27) : warning C4189: 'CLASS' : local variable is initialized but not referenced DialUpManager.c(46) : warning C4189: 'CLASS' : local variable is initialized but not referenced DialUpManager.xs(52) : error C2664: 'Perl_newSVpv' : cannot convert parameter 2 from 'class wxString' to 'const char *' No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called NMAKE : fatal error U1077: 'cl' : return code '0x2' Stop. I don't know exactly when this stopped working, but sure enough, Wx::Api has the cure I needed, I changed PUSHs( sv_2mortal( newSVpv( names[i], names[i].Length() ) ) ); to PUSHs( wxPli_wxString_2_sv( aTHX_ names[i], sv_newmortal() ) ); __________________________________ Do you Yahoo!? Yahoo! Mail - 50x more storage than other providers! http://promotions.yahoo.com/new_mail |