Re: Fruit basket program in C++ with WxWidgets
- From: "Marlon Brandão de Sousa" <splyt.lists@xxxxxxxxx>
- To: programmingblind@xxxxxxxxxxxxx
- Date: Fri, 30 Nov 2007 12:52:12 -0200
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 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
- Follow-Ups:
- Re: Fruit basket program in C++ with WxWidgets
- From: Jamal Mazrui
- References:
- Fruit basket program in C++ with WxWidgets
- From: Jamal Mazrui
- Re: Fruit basket program in C++ with WxWidgets
- From: Octavian Rasnita
- Re: Fruit basket program in C++ with WxWidgets
- From: Jamal Mazrui
Other related posts:
- » Fruit basket program in C++ with WxWidgets
- » Re: Fruit basket program in C++ with WxWidgets
- » Re: Fruit basket program in C++ with WxWidgets
- » Re: Fruit basket program in C++ with WxWidgets
- » Re: Fruit basket program in C++ with WxWidgets
- » Re: Fruit basket program in C++ with WxWidgets
- » Re: Fruit basket program in C++ with WxWidgets
- » RE: Fruit basket program in C++ with WxWidgets
- » RE: Fruit basket program in C++ with WxWidgets
- » RE: Fruit basket program in C++ with WxWidgets
- » RE: Fruit basket program in C++ with WxWidgets
- » RE: Fruit basket program in C++ with WxWidgets
- » Re: Fruit basket program in C++ with WxWidgets
- Re: Fruit basket program in C++ with WxWidgets
- From: Jamal Mazrui
- Fruit basket program in C++ with WxWidgets
- From: Jamal Mazrui
- Re: Fruit basket program in C++ with WxWidgets
- From: Octavian Rasnita
- Re: Fruit basket program in C++ with WxWidgets
- From: Jamal Mazrui