RE: Fruit basket program in C++ with WxWidgets


Actually I got side tracked. and again now with WX widgets I got side
tracked.  I will go back to the mfc project and finish it before I jump into
the WX widget one that way if the other person that responded to you
finishes first great.  When you say free compiler do you mean VC++ express?
I don't know that I can do that easily but I will give it a shot I can put
express on my laptop I just don't want to screw up my VS install on this
computer.

Ken
-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Jamal Mazrui
Sent: Saturday, December 01, 2007 11:39 AM
To: programmingblind@xxxxxxxxxxxxx
Subject: RE: Fruit basket program in C++ with WxWidgets

Thanks for trying to help with this, Ken.  Make sure you compile with the
standard rather than "universal" Wx Widgets libraries.  The latter are
custom rather than native controls (with MSAA).

Regarding MFC, have you been able to compile a single-file version of your
fruit basket program?  If so, can you possibly include instructions for
using a free command-line compiler to build the program?

Jamal
On Sat, 1 Dec
2007, Ken Perry wrote:

> Date: Sat, 1 Dec 2007 10:27:41 -0800
> From: Ken Perry <whistler@xxxxxxxxxxxxx>
> Reply-To: programmingblind@xxxxxxxxxxxxx
> To: programmingblind@xxxxxxxxxxxxx
> Subject: RE: Fruit basket program in C++ with WxWidgets
>
>
>
> I would do it but when I last downloaded WX it was not that accessible 
> after making the application so I deleted it from my computer.  It was 
> not hard to create the application but it was not that much easier 
> than just using MFC so that was another reason for just deleting the 
> WX widgets.  I will go see if its worth while now.
>
> Ken
>
>
> -----Original Message-----
> From: programmingblind-bounce@xxxxxxxxxxxxx
> [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Jamal 
> Mazrui
> Sent: Saturday, December 01, 2007 9:58 AM
> To: programmingblind@xxxxxxxxxxxxx
> Subject: Re: Fruit basket program in C++ with WxWidgets
>
> Since you said it was coming soon, I've been waiting for a tutorial on 
> compiling a C++/Wx application (as opposed to the Wx libraries) ....
> <grin>  The lack of response so far on this question from any C++ 
> developer on the list leads me to infer that the process is more 
> complex than I anticipated, even when one already knows the C++ 
> language.  If someone posted a question about how to build a .NET
executable with a
> 3rd party assembly, I could have quickly answered with specifics.   This
> is not intended as a criticism of anyone and their schedules -- just 
> an observation of C++ development that is being personally 
> substantiated for me.
>
> Jamal
> On Sat, 1 Dec 2007, jaffar wrote:
>
> > Date: Sat, 1 Dec 2007 22:09:24 +0800
> > From: jaffar <jaffar@xxxxxxxxxxxxx>
> > Reply-To: programmingblind@xxxxxxxxxxxxx
> > To: programmingblind@xxxxxxxxxxxxx
> > Subject: Re: Fruit basket program in C++ with WxWidgets
> >
> > Hi Jamal.  I'll compile it on monday or tuesday as I have a family 
> > event during the week end and unfortunately cannot spare the time.
> > I'll do it during lunch time in my office.  Cheers!
> > ----- Original Message -----
> > From: "Jamal Mazrui" <empower@xxxxxxxxx>
> > To: <programmingblind@xxxxxxxxxxxxx>
> > Sent: Friday, November 30, 2007 11:57 PM
> > Subject: Re: Fruit basket program in C++ with WxWidgets
> >
> >
> > As far as I can tell, the call to the VC++ compiler does not include 
> > the /clr parameter, so there should not be a .NET dependency.  Also, 
> > since I think Octavian has .NET installed, the program should be 
> > able to find the .NET dependency if that were true, especially if 
> > the .manifest file is in the same directory.  I suspect (though am 
> > not
> > sure) that the dependency is on a file in the Windows platform SDK 
> > that I installed, and perhaps Octavian did not.
> >
> >   If you are referring to another , earlier message thread in which 
> > Will posted about this problem, I could not find it via Google.
> >
> > Marlon, what C++ compilers do you use?  Do you use any free ones or 
> > know how to use them?  Can you help me compile the Wx source code 
> > with MinGW or Borland C++ Builder so that it is a single, 
> > self-standing executable (whatever the size)?  The complete source 
> > code is in the cwx_fruit.cpp file within the archive at 
> > http://www.EmpowermentZone.com/cwx_fruit.zip
> >
> > Jamal
> > On Fri, 30 Nov 2007, Marlon
> > Brandão de Sousa wrote:
> >
> > > Date: Fri, 30 Nov 2007 12:52:12 -0200
> > > From: Marlon Brandão de Sousa <splyt.lists@xxxxxxxxx>
> > > Reply-To: programmingblind@xxxxxxxxxxxxx
> > > To: programmingblind@xxxxxxxxxxxxx
> > > Subject: Re: Fruit basket program in C++ with WxWidgets
> > >
> > > I think it isn't a .net dependency. Vc .net 2005 uses a kind of 
> > > manifest to link to the right version of the C crt, a kind of 
> > > (personal thought here) ridiculous thing ms did to try to avoid 
> > > dll hell ... and you have to embed this manifest in your 
> > > executable or redistribute it with your software. I don't know how 
> > > to do it, but Will Pearson talked about this some time ago in this
list.
> > > Marlon
> > >
> > > 2007/11/30, Jamal Mazrui <empower@xxxxxxxxx>:
> > > > Jaffar or other C++ developers,
> > > > Apparently, the Win32 executable I built has dependencies that I 
> > > > do not intend.  Can you help me build a version as a single, 
> > > > self-standing executable, preferrably with the same VC++ compiler?
> > > > Doing so with any other free C++ compiler would also be of interest.
> > > >
> > > > Jamal
> > > > On Thu, 29 Nov 2007,
> > > > Octavian Rasnita wrote:
> > > >
> > > > > Date: Thu, 29 Nov 2007 08:03:22 +0200
> > > > > From: Octavian Rasnita <orasnita@xxxxxxxxx>
> > > > > Reply-To: programmingblind@xxxxxxxxxxxxx
> > > > > To: programmingblind@xxxxxxxxxxxxx
> > > > > Subject: Re: Fruit basket program in C++ with WxWidgets
> > > > >
> > > > > Hi,
> > > > >
> > > > > I have tried to run the executable, but the following error
> appeared:
> > > > >
> > > > > This application has failed to start because the application 
> > > > > configuration is incorrect. Reinstalling the application may 
> > > > > fix this problem.
> > > > > OK
> > > > >
> > > > > Does anyone know in what programming language and with which 
> > > > > GUI library
> > > > is
> > > > > made the program UTorrent?
> > > > >
> > > > > Thanks.
> > > > >
> > > > > Octavian
> > > > >
> > > > > ----- Original Message -----
> > > > > From: "Jamal Mazrui" <empower@xxxxxxxxx>
> > > > > To: <programmingblind@xxxxxxxxxxxxx>
> > > > > Sent: Wednesday, November 28, 2007 9:04 PM
> > > > > Subject: Fruit basket program in C++ with WxWidgets
> > > > >
> > > > >
> > > > > > From the archive at
> > > > > > http://www.EmpowermentZone.com/cwx_fruit.zip
> > > > > >
> > > > > > This fruit basket program is written in C++, using the open 
> > > > > > source WxWidgets GUI library and application framework 
> > > > > > available from http://WxWidgets.org
> > > > > >
> > > > > > The program is compiled with the free Microsoft Visual C++ 
> > > > > > Express Edition, available from http://msdn.microsoft.com 
> > > > > > Another download needed from there is the Windows Platform SDK.
> > > > > >
> > > > > > This is my first nontrivial program in C++, so I encourage 
> > > > > > others to suggest improvements to the code.  I am also 
> > > > > > interested in comparing binaries produced by other free C++ 
> > > > > > compilers, including MinGW and
> > > > Borland
> > > > > > C++ Builder, which should be able to compile the same code 
> > > > > > C++ if
> > > > > > properly
> > > > > > configured for Wx application development.
> > > > > >
> > > > > > To aid comprehension, I have tried to make the code 
> > > > > > minimalist in
> > > > nature.
> > > > > > It is contained in a single file, cwx_fruit.cpp (also pasted 
> > > > > > below),
> > > > with
> > > > > > no custom include or resource files.  I have not yet learned 
> > > > > > how to compile a Wx program by writing a make file or 
> > > > > > configuring Visual
> > > > Studio,
> > > > > > but was able to use the make file that comes with the "Minimal"
> > > > > > sample
> > > > > > program in the Wx distribution.  I simply replaced the 
> > > > > > minimal.cpp file with the content of cwx_fruit.cpp, and then 
> > > > > > renamed the resulting executable from minimal.exe to 
> > > > > > cwx_fruit.exe.
> > > > > >
> > > > > > With Unicode and release compilation options, that 
> > > > > > executable was about
> > > > > > 1.1 MB in size.  I reduced it by two thirds -- to about 
> > > > > > 373KB
> > > > > > -- using
> > > > the
> > > > > > free "Ultimate Packer for Executables" utility available 
> > > > > > from http://upx.sourceforge.net
> > > > > >
> > > > > > Besides the executable, a manifest file, under 1KB in size, 
> > > > > > is currently needed in the same directory in order to run 
> > > > > > the program.  A .NET Framework dependency might also exist, 
> > > > > > since this C++ compiler can
> > > > produce
> > > > > > executables with such a dependency if proper parameters were 
> > > > > > not used (I have not understood the make file enough to know).
> > > > > > I would appreciate assistance in eliminating the need for a 
> > > > > > seperate cwx_fruit.exe.manifest file, as well as ensuring 
> > > > > > that no .NET dependency exists.  I think this compiler is 
> > > > > > capable of producing a self-standing Win32 executable,
> > > > though
> > > > > > the file size may increase.
> > > > > >
> > > > > > Jamal
> > > > > >
> > > > > > /*
> > > > > > Content of cwx_fruit.cpp
> > > > > > Fruit basket program in C++ with WxWidgets 2.8 Compiled with 
> > > > > > Microsoft Visual C++ 2005 Express Public domain by Jamal 
> > > > > > Mazrui */
> > > > > >
> > > > > > // Import headers
> > > > > > #include "wx/wx.h"
> > > > > >
> > > > > > // Derive custom dialog class class FbDialog : public 
> > > > > > wxDialog {
> > > > > >
> > > > > > public:
> > > > > > // Declare control variables wxTextCtrl *txtFruit; wxListBox 
> > > > > > *lstBasket; wxButton *btnAdd, *btnDelete;
> > > > > >
> > > > > > // Define add event handler
> > > > > > void OnAdd(wxCommandEvent& WXUNUSED(event)) { wxString 
> > > > > > sValue = txtFruit->GetValue(); if (sValue == wxEmptyString) 
> > > > > > { wxMessageBox(wxT("No fruit to add!"), wxT("Alert")); } 
> > > > > > else {
> > > > > > lstBasket->Append(sValue);
> > > > > > txtFruit->Clear();
> > > > > > int iFruit = lstBasket->GetCount() - 1;
> > > > > > lstBasket->SetSelection(iFruit);
> > > > > > }
> > > > > > } // OnAdd event handler
> > > > > >
> > > > > > // Define delete event handler void OnDelete(wxCommandEvent&
> > > > > > WXUNUSED(event)) { int iFruit = lstBasket->GetSelection(); 
> > > > > > if (iFruit == -1) { wxMessageBox(wxT("No fruit to delete!"), 
> > > > > > wxT("Alert")); } else {
> > > > > > lstBasket->Delete(iFruit);
> > > > > > if (iFruit == lstBasket->GetCount()) {iFruit--;}
> > > > > > lstBasket->SetSelection(iFruit);
> > > > > > }
> > > > > > } // OnDelete event handler
> > > > > >
> > > > > > // Define close event handler void OnClose(wxCloseEvent& 
> > > > > > event) { if (wxMessageBox(wxT("Exit program?"), 
> > > > > > wxT("Confirm"), wxYES_NO |
> > > > > > wxCANCEL) == wxYES) {
> > > > > > Destroy();
> > > > > > event.Skip();
> > > > > > }
> > > > > > else {
> > > > > > event.Veto();
> > > > > > }
> > > > > > } // OnClose event handler
> > > > > >
> > > > > > // Define dialog constructor
> > > > > > //FbDialog::FbDialog() : wxDialog(NULL, wxID_ANY, wxT("Fruit 
> > > > > > Basket"), wxDefaultPosition, wxSize(513, 176)) {
> > > > > > FbDialog() : wxDialog(NULL, wxID_ANY, wxT("Fruit Basket"), 
> > > > > > wxDefaultPosition, wxSize(513, 176)) { new 
> > > > > > wxStaticText(this, wxID_ANY, wxT("&Fruit:"), wxPoint(14, 
> > > > > > 14), wxDefaultSize); txtFruit = new wxTextCtrl(this, 
> > > > > > wxID_ANY, wxEmptyString, wxPoint(43,
> > > > 14),
> > > > > > wxDefaultSize, wxTE_LEFT);
> > > > > >
> > > > > > new wxStaticText(this, wxID_ANY, wxT("&Basket:"), 
> > > > > > wxPoint(251, 14), wxDefaultSize); lstBasket = new 
> > > > > > wxListBox(this, wxID_ANY, wxPoint(293,14),
> > > > wxDefaultSize,
> > > > > > 0);
> > > > > >
> > > > > > btnAdd = new wxButton(this, wxID_ANY, wxT("&Add"), 
> > > > > > wxPoint(190, 121), wxDefaultSize);
> > > > > > btnAdd->SetDefault();
> > > > > > Connect(btnAdd->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, 
> > > > > > wxCommandEventHandler(FbDialog::OnAdd));
> > > > > >
> > > > > > btnDelete = new wxButton(this, wxID_ANY, wxT("&Delete"), 
> > > > > > wxPoint(217, 121), wxDefaultSize); 
> > > > > > Connect(btnDelete->GetId(), wxEVT_COMMAND_BUTTON_CLICKED, 
> > > > > > wxCommandEventHandler(FbDialog::OnDelete));
> > > > > >
> > > > > > Connect(wxID_ANY, wxEVT_CLOSE_WINDOW, 
> > > > > > wxCloseEventHandler(FbDialog::OnClose));
> > > > > >
> > > > > > Centre();
> > > > > > ShowModal();
> > > > > > } // FbDialog constructor
> > > > > >
> > > > > > }; // FbDialog class
> > > > > >
> > > > > > // Derive custom application class class FbApp : public 
> > > > > > wxApp {
> > > > > >
> > > > > > public:
> > > > > > bool OnInit() {
> > > > > > new FbDialog();
> > > > > > return true;
> > > > > > } // Init method
> > > > > >
> > > > > > }; // FbApp class
> > > > > >
> > > > > > // Define main entry point via compiler macro
> > > > > > IMPLEMENT_APP(FbApp)
> > > > > >
> > > > > > // End of cwx_fruit.cpp
> > > > > >
> > > > > > __________
> > > > > > View the list's information and change your settings at 
> > > > > > http://www.freelists.org/list/programmingblind
> > > > > >
> > > > >
> > > > > __________
> > > > > View the list's information and change your settings at 
> > > > > http://www.freelists.org/list/programmingblind
> > > > >
> > > > __________
> > > > View the list's information and change your settings at 
> > > > http://www.freelists.org/list/programmingblind
> > > >
> > > >
> > >
> > >
> > > --
> > > When you say "I wrote a program that crashed Windows," people just 
> > > stare at you blankly and say "Hey, I got those with the system, 
> > > for free."
> > > Linus Torvalds
> > > __________
> > > View the list's information and change your settings at 
> > > http://www.freelists.org/list/programmingblind
> > >
> > __________
> > View the list's information and change your settings at 
> > http://www.freelists.org/list/programmingblind
> >
> > __________
> > View the list's information and change your settings at 
> > http://www.freelists.org/list/programmingblind
> >
> __________
> View the list's information and change your settings at 
> http://www.freelists.org/list/programmingblind
>
> __________
> View the list's information and change your settings at 
> http://www.freelists.org/list/programmingblind
>
__________
View the list's information and change your settings at
http://www.freelists.org/list/programmingblind

__________
View the list's information and change your settings at
http://www.freelists.org/list/programmingblind

Other related posts: