Re: Fruit basket program in C++ with WxWidgets

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 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

Other related posts: