Search the web
Sign In
New User? Sign Up
wxMS_developers · Development with wxWidgets on MSWindows
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Real people. Real stories. See how Yahoo! Groups impacts members worldwide.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Messages 654 - 692 of 693   Newest  |  < Newer  |  Older >  |  Oldest
Messages: Show Message Summaries   (Group by Topic) Sort by Date v  
#692 From: "Dave Silvia" <dsilvia@...>
Date: Sun Oct 18, 2009 4:56 pm
Subject: Re: [anthemion-devtools] Use static runtime linking
db_vs_dave
Offline Offline
Send Email Send Email
 
You'll note, toward the bottom of the Configurations Property Sheet, there
is a property called CFG.  You might assign, for instance, the value
"Static" to this which then becomes the trailing designation for the build
and lib dirs (i.e., vc_libStatic) for your static build and "Dynamic" for
your shared object build (i.e., vc_libDynamic).

This has been around in wxWidgets for quite some time, but no one ever used
it.  When I had need of it, I researched it and asked Julian if it were
possible to add this to DB.  He did this quite some time ago.  However, even
after answering this question several times in anthemion-devtools and
wxMS_developers, and the fact that it appears in some of my tutorials and
demos and the video tutorial on building under several platforms with
wxWidgets and DialogBlocks, it still goes largely unused!%~{

You know what they say; "You can lead a horse to water, but you can't make
them do the backstroke!"

HTH:

Dave S.

Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/

wxWidgets Code Exchange
http://www.wxcodex.net/


----- Original Message -----
From: "Andreas Goebel" <a-goebel@...>
To: <anthemion-devtools@yahoogroups.com>
Sent: Sunday, October 18, 2009 4:30 AM
Subject: [anthemion-devtools] Use static runtime linking


> Hi,
>
> for one of my projects I´d like to use static runtime linking. For this,
> wxWidgets has to be rebuilt.
>
> However, for another project I must use dynamic runtime linking, and I´d
> like to keep that build of wx intact.
>
> How can I change the build-directory for wx within my dialogBlocks -
> Project?
>
> Regards,
>
> Andreas
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
>
>

#691 From: "pmushubi" <pmushubi@...>
Date: Sat Oct 17, 2009 12:39 am
Subject: How to embed MSHTML ( Internet Explorer ) control into a wxWidget app
pmushubi
Offline Offline
Send Email Send Email
 
Hi
I am looking for an example of how to embed the Microsoft browser control into a
wxWidgets app.

Thanks.

Paschal

#690 From: "Dave Silvia" <dsilvia@...>
Date: Sun Sep 6, 2009 5:45 pm
Subject: Re: [anthemion-devtools] Truncated lines in output and error window from german VC++ 2008 Express
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!

I do not really know if this will help, since I do not do international projects presently, but I used the following reasoning:

1)  wxWidgets is basically a Win32 Project

2)  Win32 Projects default to Unicode character set in Visual C++.Net (7.1) and Visual Studio 8 (2005), 9 (2008), and 10 (2010).

3)  In new projects, under Project > Properties > Configuration Properties > General > Character Set, the value is set to "Use Unicode Character Set".

4)  Non-wxWidgets, i.e., non-Win32 Projects, say, MFC Application, offer choices of "Resource Language".

5)  For an MFC Application, if one selects "German (Germany)" under "Resource Language", Project > Properties > Configuration Properties > General > Character Set is set to "Use Multi-Byte Character Set".
 
In the case of Visual Studio 10, using unicode libs is checked by default, in all others it is not.  If this is checked, then multi-byte is not selected.


Now, I do not know if simply setting the resource language to multi-byte instead of unicode will help, but it's simple enough to check!;)
 
HTH:
 
Dave S.
 
Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
 
wxWidgets Code Exchange
http://www.wxcodex.net/


----- Original Message -----
From: "Julian Smart" <julian@...>
To: <
anthemion-devtools@yahoogroups.com>
Sent: Sunday, September 06, 2009 9:34 AM
Subject: Re: [anthemion-devtools] Truncated lines in output and error window
from german VC++ 2008 Express


> Hi Robert,
>
> hoffmann_robert wrote:
>> Hi,
>>
>> I use DB 4.33 together with Visual C++ 2008 Express in a german Windows
>> Vista environment. Apparently, DB has problems with german umlauts being
>> output from VC++ (nmake and vcbuild). Lines containing umlauts are
>> truncated at the first umlaut.
>>
>> Example error output:
>> c:\users\robert\documents\visual studio
>> 2008\projects\test\dokumentdlg.cpp(222) : error C4716:
>> 'DokumentDlg::TransferDataFromWindow': Muss einen Wert zur
>>
>> <-- truncated; "zur" should be: "zurückgeben" (must return a value)
>>
>> Another output example:
>> Code wird generiert...
>> Verkn
>> Das Manifest wird eingebettet...
>>
>> "Verkn" should be "Verknüpfen" (link)
>>
> Hm. It looks as though VC++/nmake is writing characters in a different
> encoding than DB expects (it's looking for UTF-8). I guess it's using
> the current Windows encoding. Not sure how to resolve this, except
> perhaps by having an encoding setting for VC++ and having the
> pipe-reading code aware of the encoding for the current process. Or
> maybe there's a way of telling VC++ to write in UTF-8; maybe by
> executing "cmd.exe /U VCExpress.exe ..." but I don't think the /U switch
> is intended for this purpose.
>
> A (not great) workaround might be to switch the VC++ language to
> English, in Options/International Settings.
>
> If anyone has some knowledge about how VC++ output can be persuaded to
> be UTF-8 I'd be interested to hear it. An hour or so of Googling hasn't
> yielded anything useful yet... although I did come across the
> VS_UNICODE_OUTPUT environment variable, which seems to direct output to
> the IDE console instead of stdout, so probably isn't useful.
>
> Regards,
>
> Julian
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
> <*> To visit your group on the web, go to:
>   
http://groups.yahoo.com/group/anthemion-devtools/
>
> <*> Your email settings:
>    Individual Email | Traditional
>
> <*> To change settings online go to:
>   
http://groups.yahoo.com/group/anthemion-devtools/join
>    (Yahoo! ID required)
>
> <*> To change settings via email:
>   
mailto:anthemion-devtools-digest@yahoogroups.com
>    mailto:anthemion-devtools-fullfeatured@yahoogroups.com
>
> <*> To unsubscribe from this group, send an email to:
>   
anthemion-devtools-unsubscribe@yahoogroups.com
>
> <*> Your use of Yahoo! Groups is subject to:
>   
http://docs.yahoo.com/info/terms/
>

#687 From: "Dave Silvia" <dsilvia@...>
Date: Sat Jul 4, 2009 4:04 pm
Subject: No more posts of modified wxWidgets CHM/HTB files
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!
 
I won't need to be making modified versions of wxWidgets documentation as I've done in past years.  The new paradigm in 2.9.0 and after has now included the extended search and favorites (bookmarks) functionality I made available in past versions!;)  It takes time, but patience always wins out!:-)
 
fyi:
 
thx,
Dave S.
 
Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
 
wxWidgets Code Exchange
http://www.wxcodex.net/
Procrastination is the art of keeping up with yesterday.  - George Carlin

#686 From: "Dave Silvia" <dsilvia@...>
Date: Thu Jun 25, 2009 1:42 pm
Subject: Measure against spam...
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!

I've changed the procedure for joining this group.  It has always been open,
with no restriction.
I changed this to membership on approval to try to curb the spammers who
periodically join and send
garbage messages to the group.  I've been avoiding doing this because, frankly,
I have plenty
to keep me busy as it is.  However, this last spammer who just joined the group
posted an advert for
pornography, and that was definitely a last straw.  Not that I, personally, have
issues with
pornography, as a matter of fact I feel everyone has the right to voice their
opinions.  I respect
their rights, and expect the group's rights to be respected, too.  Since
pornography is a bit of a
charged issue to some people, some of whom may be members of this group, and in
deference to their rights,
all new memberships will require approval.  This is in hopes that a lowered
volume of spam will result,
not just pornography, but all unsolicited ads to the group which have no direct
bearing on wxWidgets,
wxWidgets on Microsoft Windows, and wxWidgets IDE's.

I'm hoping this will meet the approval of the group, because, after all, it is
not really my group,
but yours.

Sincerely,
Dave S.

#683 From: "Dave Silvia" <dsilvia@...>
Date: Sat Jun 6, 2009 8:29 pm
Subject: RE: link in my eBook post/email
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!
 
I went to a great deal of trouble to make sure the link was a complete hyperlink, however, some email clients, especially plain text, may not make it obvious what the actual link is!%~{
 
For the record, the link is:
 
 
That is, everything between 'http' and 'zip', inclusive, is the link.  If your particular viewer does not treat it that way, you'll need to copy and paste into the address bar of your browser the whole line/name as described here...
 
fyi:
 
Dave S.

#682 From: "Dave Silvia" <dsilvia@...>
Date: Sat Jun 6, 2009 8:14 pm
Subject: Fw: wxWidgets 2.8.10: A portable C++ and Python GUI
db_vs_dave
Offline Offline
Send Email Send Email
 
fyi:
 
----- Original Message -----
Sent: Saturday, June 06, 2009 3:13 PM
Subject: Re: wxWidgets 2.8.10: A portable C++ and Python GUI

Hi!
 
It seems there are some alternatives to deforestation and draining the
inkwell!;)  If you have some method, portable or PC/Mac based, of reading
eBooks, there are a number of packages that address the subject, one way or
the other.  The real problem is, with no recognized standard, different
developers choose different format(s) to address.  Mostly these products are
based on one of two alternatives:  commercial or open source.  In turn, each
of these is broken down still further to which format(s) are desirable.
Desirability seems mostly based on interests, personal or vested.  Finding
some commonality is indeed difficult.
 
One free 'commercial' product comes from eReader.com (formerly Palm Digital).
In similar fashion to Adobe with their PDF Reader, eReader has a free ebook
reader (called, of all things, 'eReader'!;).  They also have a free version
of their eBook Studio software.  Used in conjunction, it's a pretty valuable
tool.
 
eBook Studio allows one to set up an eBook from scratch or import the
data (text, etc.) which can be used to create a book.  Like most all eBook
'making' software, HTML may be loaded and transformed into the 'native'
eBook specification format.  For eBook Studio, this is the PML (Palm Markup
Language) format.  Once the eBook data has been loaded and saved into PML,
a PDB (Palm DataBase) eBook can then be produced.
 
The PDB format is recognized by many PDA readers as well as a few software
conversion packages.  Getting a PDB eBook is relatively easy in the case of
wxWidgets.  Getting other formats is a bit harder.
 
To make an eBook in the PDB format involves just 2 steps.  These were learned
empirically as most all converter/creation packages are quite short on the
'How To Use' information.  One might think at first that all of the HTML files
that make up the wxWidgets documentation.  This turns out to be quite doable,
but very tedious.  There are 687 HTML files involved, as well as support files
(GIF and CSS).  I have been unable to find any converter/creator which loads
more than one HTML (or any file) at one time!8-o  Thankfully, with eBook
Studio, this is not necessary.  Going on the basis that all 'groups' of HTML
files will have a typical 'index.html' file as 'ground zero', eBook Studio
follows the links in that file and all subsequent files to obtain the complete
hierarchy.  The problem is, which file is the counterpart to 'index.html' in
the wxWidgets documentation.  It turns out to be the file wx_contents.html.
Opening wx_contents.html in eBook Studio causes it to parse the links and build
a hierarchy of files/links.  This is then saved as a PML file, and from this,
one may generate a PDB file, the eBook one is after.
 
The 2 steps are:
 
1) Open eBook Studio and then load wx_contents.html.
 
2) Save the loaded data as a PML, then make the eBook (PDB) from that.
 
Believe it or not, it took me a good week of investigation to distill these
2 steps!:=]
 
Other packages operate in much the same way, but their output is not terribly
desirable.  eBook Studio in conjunction with eReader gives a very nice,
comfortably readable presentation.
 
There are a couple of undesirable points, but they are not the fault of either
eBook Studio or eReader.  The 'built in' navigational icons in the wxWidgets
HTML files aren't recognized as navigation in the eBook.  They are displayed,
but do nothing.  Then there are the anchors for (mostly internal) jumps to
specific topics.  Although there is no 'right' or 'wrong' way to place these,
for the purpose of generating an eBook, they are usually in the 'wrong' place.
The result is, when you select a link to an anchor, more often than not, you
will need to turn the page to actually get the topic.  It would have been nicer
had the anchors been placed inside the title/header for the topic, i.e.:
 
<h2><a name="topicName">This Topic Name</a></h2>
 
However, as it is, the layout is generally:
 
<a name="topicName"></a>
<differentTag>...</differentTag>
<AnotherTag>...</AnotherTag>
<h2>This Topic Name</h2>
 
Being separated like this, although not in any way outside of specification
(HTML 4.0 Transitional, which is another 'problem' and a different topic),
causes the jump location in the eBook to be _before_ the actual topic.
 
There are, as stated, other packages.  Those I've had time to look at in depth
do not perform as well.  One alternative which I have not yet had time to look
into is Open Office.  It has the capability to generate several different data
/eBook specification formats.  This could prove to be a godsend to folks who
happen not to have an eReader compatible PDA.
 
Currently eReader.com advertizes compatibility with and/or software for the
following PDA's and Operating Systems:
 
iPhone and iPod touch
BlackBerry
Palm OS
PocketPC 2002 or Earlier
Windows Mobile Smartphone and PocketPC 2003 or Later
Symbian
Windows
Macintosh
OQO
 
A zip archive of the 2.8.10 wxWidgets manual in PDB and PML formats can be
obtained with the following link:
 
 
fyi:
 
thx,
Dave S.
 
Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
 
wxWidgets Code Exchange
http://wxcodex.net/
 


----- Original Message -----
From: "Steve Cookson" <
steve.cookson@...>
To: <
wx-users@googlegroups.com>
Sent: Wednesday, May 27, 2009 8:08 AM
Subject: RE: wxWidgets 2.8.10: A portable C++ and Python GUI



And that certainly applies to me.  I need a book that I can read when I'm
doing other daily activities (on the Metro, waiting for appointments, ....).
But I might try a US printer to see if it's more cost effective.

Thanks for the help.

Regards

Steve


-----Original Message-----
From:
wx-users@googlegroups.com [mailto:wx-users@googlegroups.com] On Behalf
Of Tim
Sent: 27 May 2009 09:55
To:
wx-users@googlegroups.com
Subject: Re: wxWidgets 2.8.10: A portable C++ and Python GUI



Hi,

I agree with Xavier's suggestion to go to a local print shop to print the
PDF version of "wxWidgets 2.8.10: A portable C++ and Python GUI".  However,
only print a portion of the 2400 pages.

Many beginners learn best by having a printed paper copy to browse and write
on.  It is somehow easier to see the big picture and not get lost in the
details when you have a paper copy to read.

After one get pasts the beginner stage however, then the online copy is
better because it is up-to-date with hyperlinks.

Your local printer can probably:
  a) Accept the pdf online
  b) Print double-sided
  c) Bind in books of about 300-400 pages for $25/book

If you want to try this, print pages 2026-2353 first and give it a try.
This is the last 300 pages and the most readable portion.  If you like it,
then print pages i-339 next which is the first 350 pages.  Everything in the
middle, pages 18-1903 (Chapter 7 Alphabetical class reference and Chapter 8
Functions), or nearly 80% of the book, is probably easier to use online with
hyperlinks.  You can use the hyperlinked reference at
http://docs.wxwidgets.org/stable/ or the MS HTML Help file, for example.

One more note:  The paper page numbers don't match the PDF page numbers.  So
when you give instructions to your print shop, give both page ranges:
Example:  "Print pages 2026-2353 (pdf pages 2054-2381) double-sided and bind
with a cover".

Tim

--- On Tue, 5/26/09, Xavier Miller <
xavier.miller@...> wrote:

> From: Xavier Miller <
xavier.miller@...>
> Subject: Re: wxWidgets 2.8.10: A portable C++ and Python GUI
> To:
wx-users@googlegroups.com
> Date: Tuesday, May 26, 2009, 11:46 PM
>
> Hello,
>
> You can also find an online printing service, or go to a local "print
> shop".
>
> Steve Cookson a écrit :
> > OK, thanks for this.
> >
> > I guess you're saying that Amazon won't be beating a
> path to your door just
> > yet.
> >
> > Oh well, maybe I'll just stock up on printer ink.
> >
> > Have a good day.
> >
> > Regards
> >
> > Steve
> >
> >
> >> But there seems to be a document out there
> "wxWidgets 2.8.10: A
> >> portable C++ and Python GUI" - by the ususal
> suspects, running in
> >> excess of 2,300 pages, as I'm never going to print
> out that beast (it
> >> would cost 00s in printer ink alone), I looked on
> Amazon, and imagine
> >> my astonishment when I got "Your search did not
> match any products."
> >>
> >> Well, I have my credit card ready, and I'm hungry
> to buy, so where do I go?






--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"wx-users" group.
To post to this group, send email to
wx-users@googlegroups.com
To unsubscribe from this group, send email to
wx-users+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/wx-users?hl=en
-~----------~----~----~----~------~----~------~--~---

#681 From: "Dave Silvia" <dsilvia@...>
Date: Sun May 17, 2009 2:16 pm
Subject: Re: [anthemion-devtools] Re: Problem building demo project under Windows
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!
 
As stated in the earlier response:
 
>> This is a very common problem with wxWidgets on Windows.
>> It has to do with mixing and matching incompatible library types.
>> If you want to use shared objects (.dll's),
>> then you must also build wxWidgets as shared objects.
>> If you want to build in library routines statically,
>> then you have to specify static libraries to µ$.
 
 
 
> you can change /MD to /MT (project perperty/c++/code generation)
> I think it works
This is exactly what you do when you set 'Build > Configurations... > Runtime library' property for a project. By setting this to Static, DB generates either:
 
RuntimeLibrary="0"
RuntimeLibrary="1"
 
for /MT (Release) or /MTd (Debug) respectively. Similarly, when set to Dynamic, DB generates:
 
RuntimeLibrary="2"
RuntimeLibrary="3"
 
for /MD (Release) or /MDd (Debug) respectively.
 
These values are in the generated .vcproj file. For the nmake version (VC++, as opposed to VC++ Project), values are in the makefile.vc as:
 
OPTFLAGS=/MT
OPTFLAGS=/MTd
OPTFLAGS=/MD
OPTFLAGS=/MDd
 
Again, the crux of the problem is when your wxWidgets libs and the libs you've chosen for runtime from Windows don't match. You cannot build a dynamic Windows application with static wxWidgets. They were built differently on the Windows platform, using different Windows libraries and you will get conflicts at link time. Ref:
 
 

The following libraries contain the C run-time library functions.

 
Which contains the table (modified for presentation in email: fixed width font):
 
C run-time library
(without iostream or standard C++ library)  Associated DLL       Characteristics                     Option  Preprocessor directives
====================================================================================================================================
libcmt.lib                                  None, static link.   Multithreaded, static link          /MT     _MT
------------------------------------------------------------------------------------------------------------------------------------
msvcrt.lib                                  msvcr90.dll          Multithreaded, dynamic link         /MD     _MT, _DLL
------------------------------------------------------------------------------------------------------------------------------------libcmtd.lib                                 None, static link    Multithreaded, static link (debug)  /MTd    _DEBUG, _MT
------------------------------------------------------------------------------------------------------------------------------------
msvcrtd.lib                                 msvcr90d.dll         Multithreaded, dynamic link (debug) /MDd    _DEBUG, _MT, _DLL
------------------------------------------------------------------------------------------------------------------------------------
 
As you see, the conflicts come up because on the one hand, either the wxWidgets lib or the project used libcmt, and on the other, it's counterpart (wxWidgets or project) used msvcrt. Hence, the conflict messages containing the two libraries.
 
HTH:
 
thx,
Dave S.
 
Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
 
wxWidgets Code Exchange
http://wxcodex.net/
 
 
----- Original Message -----
From: "Ali Ramezani" <ramezani_a@...>
Sent: Sunday, May 17, 2009 8:00 AM
Subject: [anthemion-devtools] Re: Problem building demo project under Windows

> Hi,
> you can change /MD to /MT (project perperty/c++/code generation)
> I think it works
>
> Ali
>
> --- In
anthemion-devtools@yahoogroups.com, "ronys" <ronys@...> wrote:
>>
>> Hi,
>>
>> Using version 4.30 (Unicode) with wxWidgets 2.8.7 and MSVC 8 (VS2005), I get the following error while building the Demo project. Any suggestions welcome.
>>
>> Thanks,
>>
>>   Rony
>>
>> link /OUT:VCUnicodeRelease\Elements.exe /LIBPATH:"C:\local\src\wxWidgets-2.8.7/lib/vc_lib" /LIBPATH:"C:\local\MSVS8\vc\lib" /LIBPATH:"C:\local\MSVS8\vc\PlatformSDK\lib" /nologo /SUBSYSTEM:WINDOWS /machine:i386 VCUnicodeRelease\advancedcontrols.obj VCUnicodeRelease\basiccontrols.obj VCUnicodeRelease\complexdialog.obj VCUnicodeRelease\elements.obj VCUnicodeRelease\independentpanel.obj VCUnicodeRelease\myframe.obj VCUnicodeRelease\scrollingdialog.obj VCUnicodeRelease\settingsdialog.obj VCUnicodeRelease\splitterdialog.obj VCUnicodeRelease\topdialog.obj VCUnicodeRelease\wizarddialog.obj VCUnicodeRelease\Elements.res wxmsw28u_richtext.lib wxmsw28u_aui.lib wxmsw28u_core.lib wxbase28u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxmsw28u_adv.lib wxmsw28u_html.lib wxmsw28u_xrc.lib wxbase28u_net.lib wxbase28u_xml.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib
>> link /OUT:VCUnicodeRelease\Elements.exe /LIBPATH:"C:\local\src\wxWidgets-2.8.7/lib/vc_lib" /LIBPATH:"C:\local\MSVS8\vc\lib" /LIBPATH:"C:\local\MSVS8\vc\PlatformSDK\lib" /nologo /SUBSYSTEM:WINDOWS /machine:i386 @C:\DOCUME~1\ronys\LOCALS~1\Temp\nm54B.tmp
>> LIBCMT.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in MSVCRT.lib(MSVCR80.dll)
>> LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
>> VCUnicodeRelease\Elements.exe : fatal error LNK1169: one or more multiply defined symbols found
>> *** NMAKE : fatal error U1077: 'C:\local\MSVS8\vc\bin\link.EXE' : return code '0x491'
>> *** Stop.
>>
>
>
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
> <*> To visit your group on the web, go to:
>   
http://groups.yahoo.com/group/anthemion-devtools/
>
> <*> Your email settings:
>    Individual Email | Traditional
>
> <*> To change settings online go to:
>   
http://groups.yahoo.com/group/anthemion-devtools/join
>    (Yahoo! ID required)
>
> <*> To change settings via email:
>   
mailto:anthemion-devtools-digest@yahoogroups.com
>   
mailto:anthemion-devtools-fullfeatured@yahoogroups.com
>
> <*> To unsubscribe from this group, send an email to:
>   
anthemion-devtools-unsubscribe@yahoogroups.com
>
> <*> Your use of Yahoo! Groups is subject to:
>   
http://docs.yahoo.com/info/terms/
>

#680 From: "Dave Silvia" <dsilvia@...>
Date: Thu May 14, 2009 5:06 pm
Subject: Virtualization for Dummies
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!
 
It's a free download pdf. Granted, it's a blatant advertisement for Sun and AMD, but it does have some useful information.
 
 
fyi:
 
thx,
Dave S.

#678 From: wxMS_developers@yahoogroups.com
Date: Sat May 2, 2009 8:00 am
Subject: New file uploaded to wxMS_developers
wxMS_developers@yahoogroups.com
Send Email Send Email
 
Hello,

This email message is a notification to let you know that
a file has been uploaded to the Files area of the wxMS_developers
group.

   File        : /GNU.zip
   Uploaded by : db_vs_dave <dsilvia@...>
   Description : GNU Compiler Collection and Make References

You can access this file at the URL:
http://groups.yahoo.com/group/wxMS_developers/files/GNU.zip

To learn more about file sharing for your group, please visit:
http://help.yahoo.com/l/us/yahoo/groups/original/members/web/index.htmlfiles

Regards,

db_vs_dave <dsilvia@...>

#677 From: "Dave Silvia" <dsilvia@...>
Date: Fri May 1, 2009 7:05 am
Subject: Re: Histogram Widget?
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!

If you mean a 'traditional' histogram (bar chart), a wxGrid can be used for
such a purpose. There's a _very_ basic demo of the process. Here's where you
can find it:

http://www.wxcodex.net

In the green menu to the left, click the 'Demo' radio button, then click the
'Go' button at the bottom of that same menu. It's on the second page of
demos, I think. It has all the code for building and a Makefile for Linux
GCC, makefile.gcc for MinGW, and GridHist.vcproj/GridHist.sln for Visual
Studio. It also contains a DialogBlocks project file (that's what was used
to 'create' the GUI and incidentals). You do not have to use DialogBlocks to
use the demo, all the resultant pieces are there.

HTH:

thx,
Dave S.

Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/

wxWidgets Code Exchange
http://wxcodex.net/

----- Original Message -----
From: "Guy Rutenberg" <guyrutenberg@...>
Newsgroups: comp.soft-sys.wxwindows
To: <wx-users@...>
Sent: Thursday, April 30, 2009 9:26 AM
Subject: Histogram Widget?


>
>
> Hi,
>
> I'm looking for a widget to display histograms of data (not images) as
> means of data visualization.
>
> Does anyone knows about such widget for wxWidgets?
>
> Regards,
>
> Guy
>
> ----
> http://www.openyahtzee.org/ - An open-source Yahtzee game written in
> wxWidgets
> _______________________________________________
> wx-users mailing list
> wx-users@...
> http://lists.wxwidgets.org/mailman/listinfo/wx-users

#676 From: "Dave Silvia" <dsilvia@...>
Date: Mon Apr 27, 2009 11:10 am
Subject: ANN: A B C wx DB: Easy way to build wxWidgets libs, samples
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!
 
There's something new and different stirring at wxCodex.net. The new entry is in the 'Misc' category. It's a video demo of wxWidgets and DialogBlocks working in tandem. It begins with the download of each, then installation. Next, there is a presentation of building an existing DialogBlocks project available on the net. It could equally as well be from a colleague, someone asking for help with a problem, or one you just stumbled upon. Finally, there's an exposition of creating a new project in DialogBlocks from existing code. In this case, it's the 'famous' minimal sample from the wxWidgets distribution, but again, it could have had other origin.
 
If you're rather weary of 're-'working distributions by hand and/or with 'canned' scripts, etc., you most likely would find this video helpful. It shows how to fill in the compiler configuration property sheet in DialogBlocks for however many compilers/configurations you may have. Once done, it needs little or no revisiting with each release of wxWidgets. It's truly a 'set and forget' paradigm, allowing one to get on with more pressing matters, like meeting application release deadlines!;)
 
There are several advantages to using DialogBlocks for wxWidgets library builds:
 
1) Stores all build information. No need for [semi-]manual methods/scripts/etc.
 
2) DialogBlocks is (usually) more up to date than wiki documents and other guides.
 
3) Makes having multiple builds under the same wxWidgets distribution tree.
 
4) Allows easy differentiation of build types beyond just 'Debug' and 'Release'.
 
And more...
 
If your primary development platform is Windows and you make use of several versions of Visual Studio to keep in sync with distributed product, DialogBlocks makes this extremely easy as it is 'aware' of the different versions. Plus, once DialogBlocks has the configuration property information, there's no need on Windows to laboriously modify the distributed Visual Studio project files on each new wxWidgets distribution.
 
For quick building of existing code, say, from wxWidgets samples, DialogBlocks is pretty hard to beat!
 
Keep in mind, everything addressed here does not require a registered version of DialogBlocks. The 'free forever' evaluation copy of DialogBlocks more than suffices, so, one could consider it the 'Free' version of DialogBlocks! But, once you've used DialogBlocks for a period of time and get to know all of it's design advantages for wxWidgets, you'll probably want a registered copy. And, the good news is, the registration fee is nominal, reasonable, and opens up DialogBlocks' full potential as an IDE/RAD tool.
 
As stated above, this video is available at wxCodex.net in the Misc category. For a short time, while the host website is under construction, it may also be obtained with the following link:
 
 
You will also find an iPhone video of the presentation (sans links and other flash 'hotspots'). It's smaller than the web presentation and may come in handy as a 'cheat sheet'!;)
 
fyi:
 
Dave S.

#674 From: "Dave Silvia" <dsilvia@...>
Date: Mon Apr 13, 2009 8:49 pm
Subject: Re: Were can I find lastest builds of wxMSW?
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!
 
Like Ori says, if you just want to build the distribution the way it comes out of the chute, it's as simple as converting the dsw to sln in Visual Studio 2008 Express (and all the, 20 now, project files).
 
What do you do if you need changes? Well, Ori's right again! You can read all the directions in the link he supplied, and extrapolate as necessary (if you know what to extrapolate!;). And, of course, any changes you make must be made (identically and comprehensively) to each and every wxWidgets distributed Visual Studio project file!:-( A _very_ tedious task. I know, I've done it _many_ times.
 
Oh, and don't forget, when wxWidgets releases another distribution, you have to repeat the ritual!:-)
 
Somehow, though, I don't think anyone who's asking for a pre-built download wants all that hassle!;) They want a simple solution. One that doesn't require a lot of internal knowledge of Visual Studio and/or wxWidgets build systems. Maybe they are just someone who wants to build their Redhat/Fedora/Ubuntu project on Windows without having to go through the agony of the Windows learning curve...
 
If that's the case, then DialogBlocks builds of wxWidgets are much simpler. It's a simple matter to set the properties in the DialogBlocks compiler configuration for Visual Studio compilers. Set once, and it's done. No modifications for each project file, no copy and paste from one file to another, no reading the wiki instructions to figure out what you've done wrong!;) And when there's a new Visual Studio, DialogBlocks is usually updated more quickly and accurately than the wiki instructions!;) All you need to do is change the version number in the DialogBlocks compiler configuration property sheet!:-)
 
And, to build wxWidgets, for any and all platforms, not just Windows (and you don't have to read each and every wiki page for each and every platform!;), DialogBlocks is f-r-e-e, so why put yourself through the added effort and time? That is, unless you are more interested in hack digging (which is okay, I've done my share of it, with pleasure, when that was the aim!;) and less interested in serious professional development!:-)
 
Both solutions are free, one takes more time and effort... It becomes an individual choice!:-)
 
HTH:
 
thx,
Dave S.
 
Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
 
wxWidgets Code Exchange
http://wxcodex.net/
 
On 4/13/2009 8:32:28 AM, Ori Lahav (vbcrlf@...) wrote:
> Hey,
> Install Visual C++ 2008 Express and Platform SDK, open the project file,
> build and
> you're done!
> If you need any further help, look here: http://wiki.wxwidgets.org/Compiling_WxWidgets_on_Windows#Microsoft_Visual_C.2B.2B_Express_Editions
>
> Ori.
>
> On Mon, Apr 13, 2009 at 11:07 AM, Dave Silvia <dsilvia@... [link: mailto:dsilvia@...]> wrote:
> Hi!
>
> On your PC!;) wxMSW builds quite nicely on Windows. I use DialogBlocks and Visual Studio to build, with no complications. Takes about 15 minutes to build ANSI and UniCode through DialogBlocks using the compiler/linker available in Visual Studio 6, 7.0, 7.1, 8, and 9 (I suggest 8 or 9 as these are optimized compilers). It takes up to twice as long with MinGW. Cygwin I haven't
> built with for several years, but
> it's on a par with MinGW (both GCC).
>
> All the above tools, DialogBlocks, Visual Studio, MinGW and Cygwin are free for the purpose of building wxWidgets. Visual Studio 8/9 (a.k.a. Visual Studio 2005/2009) are free 'forever' from Microsoft, 6, 7.0, and 7.1 are also free if you search the net, Microsoft no longer supports these.
>
> HTH:
>
> thx,
> Dave S.
>
> Development with wxWidgets on MSWindows
> http://tech.groups.yahoo.com/group/wxMS_developers/
>

#673 From: "Dave S." <dsilvia@...>
Date: Sun Apr 5, 2009 6:26 pm
Subject: Re: [anthemion-devtools] On the subject of source control...
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!

Thank you for the input!:-) Most interesting!;)

It's nice to see that I wasn't the only one who didn't automatically forgive
'his highness', Linus Torvalds, for his parochialism, disclaimed or not!:-)
You'll 'catch more flies with honey than with vinegar', providing, of
course, catching flies is one of your hobbies and their not 'pop-flies'!;)

If there's one attitude in the world of software I admire most it's
'TMTOWTDI'; the 'byword' acronym of Perl. And even though Perl aficionados
use the term somewhat 'parochially' themselves, i.e., more than one way in
Perl, it's nonetheless a universal truism.

A particular way to handle a problem may not be the 'best' way, in fact,
more often than not, it is not!:-o More realistically, it's the most
suitable way from the available resources in the extant environment, and,
btw, it has some 'personal' appeal, for completely unrelated reasons, to one
someone involved.

I would love to see a git type of paradigm available on all platforms,
complete with a universal (i.e., not different for each platform and
maintained by unrelated teams) GUI/UI, provision for plugins, and an API. To
me, that would be the ultimate. But that whole world is somewhere in the
future still, and not here today. So, I must make due with the resources at
hand for my environment (and that I personally like!;).

This is definitely a good piece of history in software engineering to follow
as it unfolds!;)

thx,
Dave S.

----- Original Message -----
From: "Soeren.Meyer-Eppler" <Soeren.Meyer-Eppler@...>
To: <anthemion-devtools@yahoogroups.com>
Sent: Sunday, April 05, 2009 12:46 PM
Subject: Re: [anthemion-devtools] On the subject of source control...


> Eric Sink, one of the Vault Version Control system managers/developers,
> blogs about decentralised version control and raises some good points.
> He's biased of course, but his summary is nevertheless worth a read:
>
> http://www.ericsink.com/entries/dvcs_dag_1.html
>
> http://www.ericsink.com/entries/dvcs_dag_2.html
>
> http://www.ericsink.com/entries/merge_history.html
>
> http://www.ericsink.com/entries/why_is_git_fast.html
>
> cheers,
>
>    Sören
>
> --
> Sören Meyer-Eppler
> software developer
> Soeren.Meyer-Eppler@...
> http://www.BuschnicK.net
>
>
> ------------------------------------

#672 From: "Dave Silvia" <dsilvia@...>
Date: Sun Apr 5, 2009 3:39 am
Subject: On the subject of source control...
db_vs_dave
Offline Offline
Send Email Send Email
 
I thought I might share my experience of the last week, spent looking for a
good, flexible, easy to use, simple to
learn, and *cheap* (read: 'free or less'!;) project management/source control
package. In the years I've been around
software, there have been 3 fairly high rated and widely used free, open source,
source control packages: RCS, CVS,
and SVN. All three quite good 'low level', command line based applications.
Unfortunately, with the possible exception
of CVS and Tortoise, easy to use GUI front ends are few and far between. I hit
about a half dozen 'wrappers' for SVN,
and in my most humble opinion (and it's very true!;), not a one is worth too
much. TortoiseSVN is the most likely
front runner, but even it is not as good as it's predecessor, TortoiseCVS.
Additionally, it suffers from the same
drawback of TortoiseCVS: no true GUI interface, simply a set of system context
menus. A couple of others showed some
promise, but they haven't been actively worked on of late and sadly lack a good
deal of basic functionality.
Speaking of which, that seems to be the biggest 'lack' of all front ends for
SVN, basic functionality for administering
the database (repository, depot, stream, what-have-you). I would think this
would have been one of the first things
out of the chute, but apparently my thinking is wrong!;) For some unknown
reason, none of the front end applications
want to tackle management, just day to day checkin/checkout. But here's hoping
all of that will change in the near
future with CollabNet coming out with a true front end application, at least for
Windows, CollabNet Desktop (and, no,
I'm not talking about the product that previously held that name. That is/was
more or less a plugin for Visual Studio).
I tried using CollabNet Desktop (a.k.a., 'Microsoft Windows Edition'), but it's
only a beta, and still quite in its
infancy.

Biting the bullet, I decided to look at the possibility of shareware/commercial
project management/source control
resources. Here I was a little more successful, although not to a great degree
(say, maybe 4-15% greater success?).
I have been a long time user of Araxis Merge, to my thinking, one of the better
'diff' programs around today. It is
commercial, but not bankrupting. In delving a bit deeper into Merge, I
discovered a fact I was hitherto unaware of;
it's designed to seamlessly work with other 3rd party source control packages,
notably SVN and Perforce. I took a
look at the SVN portions of Merge, but for whatever reason I couldn't easily get
them to work. So, I started looking
at Perforce. In that same time frame, I found both Perforce and PureCM in
wikipedia and thought it might be a good
idea to look at PureCM while I was at it.

Both Perforce and PureCM are UK based companies. I believe Perforce has been
around the longest (not sure though).
Perforce has both 32 and 64 bit versions, PureCM only 32 bit. Perforce's UI has
more functionality, and of all the
GUI's I looked at, it was the only one that actually had clear, concise
documentation on administration of your
database (which they call a 'depot'), and the functionality was actually in the
GUI itself!8-o It wasn't a set of
(usually erratic and not always correct) instructions on how to access the p4
(counterpart of svn/svnadmin)
administration commands from the command line!8-O [I often wonder about it when
people take the time to check out and
document what commands to give at the commandline. Wouldn't it take only
marginally longer to forego that and just
write the UI for same?!%=o] Both Perforce and PureCM have a non-terminating
(i.e., free forever) evaluation which
allows a maximum of 2 users, one for admin and one for user. Perforce puts it
right up front in many places whilst
PureCM keeps it tucked away in little corners. If you're not looking for it (and
I was since the wikipedia article
stated it was a free two-seater!;), you're very likely to miss it. I suppose
there are pros and cons to both
strategies, and most likely based on their price per seat. One needs to have you
know it's there so you'll take a look
at their product and not be scared off by the $$$'s, the other's price per seat
is lower and they probably depend more
on cash flow, so they chance your not being put off by their pricing.


Perforce Licensing

The Perforce End User License Agreement (PDF) is our standard commercial
licensing agreement. All Perforce software
you download is fully functional for two users and five client workspaces when
used without a license. A Perforce
license enables the Perforce Server to support more users and an unlimited
number of workspaces and also entitles you
to Perforce Technical Support.

up to 20 users, $14,800


PureCM

Also free for 2 users.

minimum paid commercial license, $1500 for 5 users
There is a 'starter pack' for $1000, but from what I read in the FAQ, it's
really not as good a deal as it sounds,
especially if you may/will expand.


Perforce seems to be the more robust of the 2 (and the pricier if 2 seats won't
do for you!;) Both claim defect
tracking capability ('bugs'), but it seems peripheral at best.

They are both proprietary, but also 'one stop shop', you won't have to chase
about the network getting support
software (as is the case with almost all free open source products).
Additionally, being commercial, they have a
certain vested interest in stability, customer satisfaction, and performance. As
such, their support is more
responsive, their documentation is far and away of higher caliber than open
source docs tend to be. All the bases are
covered, and without having to wade through web links to get there from here.
Everything that is there is pretty much
on the money and accurate, no guess work. Also, the UI for both is much more
professional, a bit more intuitive
(although they, too, suffer from the same lack of GUI design finesse as open
source products, just not to such a
high degree!;)

This is my first venture into the world of source control in many years (aside
from some casual cvs brushes in the
recent past for obtaining online source). In the 80's and 90's I was quite
fluent in RCS/SCCS, my occupation demanded
it (aerospace and telecommunication GUI development, mostly on Sun Microsystems
boxes). The state of the art has made
some strides, inner workings wise. It's just a shame that no one (especially in
the open source community) seems to
want the 'thankless' jobs of testing, integration, and documentation. For the
most part, I was seriously disappointed
in most all offerings, free and commercial. But no one knows what tomorrow may
bring!;)

For right now, I'm leaning toward free Perforce, coupled into the Araxis Merge I
already own, and possibly using
Araxis' Ketura as the tracking portion. They all seem to fit together nicely and
the total cost is nominal. Araxis has
a package deal for Merge and Ketura, and since it is a fairly tight couple with
Perforce, I think it might just fill
the bill for me. If you are a single developer, like myself, with only a handful
of projects going at a time, you may
find Perforce or PureCM a viable alternative to SVN. Especially since all 3 are
free under these circumstances!;)

fyi & jmtcw:

thx,
Dave S.

Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/

wxWidgets Code Exchange
http://wxcodex.net/

#671 From: Radhika D <dradhika29@...>
Date: Sun Apr 5, 2009 3:35 am
Subject: Education Loan MBA/MS etc Education loans for studying in India & going to USA (100% Finance)
dradhika29
Offline Offline
Send Email Send Email
 
#670 From: "Dave Silvia" <dsilvia@...>
Date: Sat Apr 4, 2009 4:43 am
Subject: Re: [anthemion-devtools] Another suggestion
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!

If I understand the problem correctly (and that could be doubtful!;), the repository is on a windows system and the project file for DB could be changed on either a windows system or a linux box (or even Mac: \r?). It's also my understanding that the actual interaction with subversion is done on windows (TortoiseSVN?). I don't believe using the svn propset from the command line for a single .pjd will be of much use. It would be simpler, I think, to just open specific .pjd's in 'smart' editors that afford global switching of eol for a single file (or even the old 'dos2unix/unix2dos' type utility!;). Of course this applies iff: one does it on a project file by project file basis.
 
What I've finally gotten to work, with a certain amount of reliability (that is, I've tried it a half dozen times/ways and it didn't fail. That's not rigorous, just indicative!;) involves 2 modifications in TortoiseSVN (and probably similar in other SVN clients).
 
First, and foremost, svn diff is pretty crude. Which is to say, as long as you're looking at fairly plain, code type (like Pascal, C/C++, Basic, etc.) text files, it does okay. You get into anything more sophisticated (i.e., .vcproj, .pjd, misc. .xml, etc.) and it gets 'confused'. There are several free diff/merge tools out there that will probably work. The one I found and like is Source Gear's DiffMerge. One main reason I like it is that you can either let it make a SWAG at file types _or_ you can have it ask you what the type is in cases where it's not sure. For example, for a .pjd, it may well SWAG that it's an xml file (then again, maybe not). If you're not comfortable with that, or you run into problems with wrong SWAG's, set it to ask and you get a list of file types it 'knows' and you can pick (and, yes, xml is on the list!;).
 
Second, using propset is still useful, but in a more generic way, via the svn config file. At the very end of that file is a section on 'auto-props'. With the exception of a single line:
 
[auto-props]
 
the section is commented out. Uncommenting _and_ adding .pjd as one of the entries takes care of putting eol back to rights with SVN on Windows. That seems to be the only place that it might be a problem, and it would appear not in all places in SVN. But since it's easy enough to make all files in an SVN repository on Windows have Windows eol, it couldn't hurt!;) DB has no problems with line endings either way, it just always writes them out in 'native' no matter how they came in. If you open a .pjd that was last modified on Windows in Unix/Linux, it comes in with '\r\n', and leaves the same if no changes are made. But if changes are made it goes out with '\n'. And, of course, vice versa!;)
 
In synopsis:
 
1) In the Explorer context menu, select TortoiseSVN > Settings > External Programs. For each option for an external program, select the 'External' radio button, browse to DiffMerge and select DiffMerge.exe.
 
 
 
You'll find DiffMerge at:
 
 
 
 
2) In the Explorer context menu, select TortoiseSVN > Settings > General > Subversion configuration file:, and click the 'Edit' button.
 
 
 
 
You'll find, at the bottom of the file, the above mentioned section on 'auto-props'. Uncomment the lines and add the .pjd line to match the following:
 
enable-auto-props = yes
### Set interactive-conflicts to 'no' to disable interactive
### conflict resolution prompting.  It defaults to 'yes'.
# interactive-conflicts = no
 
### Section for configuring automatic properties.
[auto-props]
### The format of the entries is:
###   file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?').  All entries which match (case-insensitively) will be
### applied to the file.  Note that auto-props functionality
### must be enabled, which is typically done by setting the
### 'enable-auto-props' option.
*.c = svn:eol-style=native
*.cpp = svn:eol-style=native
*.h = svn:eol-style=native
*.dsp = svn:eol-style=CRLF
*.dsw = svn:eol-style=CRLF
*.sh = svn:eol-style=native;svn:executable
*.txt = svn:eol-style=native
*.png = svn:mime-type=image/png
*.jpg = svn:mime-type=image/jpeg
Makefile = svn:eol-style=native
*.pjd=svn:eol-style=native
 
Now, it says just above this section that it's for "'svn add' and 'svn import'", but I've found, empirically, it does seem to affect other areas.
 
HTH:
 
thx,
Dave S.

Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
 
wxWidgets Code Exchange
http://wxcodex.net/

----- Original Message -----
From: "Julian Smart" <julian@...>
To: <
anthemion-devtools@yahoogroups.com>
Sent: Friday, April 03, 2009 11:52 AM
Subject: Re: [anthemion-devtools] Another suggestion


> Fulvio Senore wrote:
>> I think that I have finally figured out what is the problem.
>>
>> It looks like the Windows version of DialogBlocks creates the project
>> file with cr-lf line endings, while the *nix versions create the project
>> with only lf line endings.
>> This is probably the reason why subversion cannot understand that only a
>> few lines have changed. Instead it thinks that the whole file is
>> completely different.
>>
>> I will have to see if it is possible solve this problem at the
>> subversion level.
>>
> If you do this:
>
> svn propset svn:eol-style native myfile.pjd
>
> then it should use the line endings for the current operating system.
>
> Hope that solves it...
>
> Regards,
>
> Julian
>
>
> ------------------------------------
>
> Yahoo! Groups Links
>
> <*> To visit your group on the web, go to:
>   
http://groups.yahoo.com/group/anthemion-devtools/
>
> <*> Your email settings:
>    Individual Email | Traditional
>
> <*> To change settings online go to:
>   
http://groups.yahoo.com/group/anthemion-devtools/join
>    (Yahoo! ID required)
>
> <*> To change settings via email:
>   
mailto:anthemion-devtools-digest@yahoogroups.com
>    mailto:anthemion-devtools-fullfeatured@yahoogroups.com
>
> <*> To unsubscribe from this group, send an email to:
>   
anthemion-devtools-unsubscribe@yahoogroups.com
>
> <*> Your use of Yahoo! Groups is subject to:
>   
http://docs.yahoo.com/info/terms/
>

#669 From: Radhika D <dradhika29@...>
Date: Sat Mar 28, 2009 4:09 pm
Subject: study online or on-campus,apply to top collage and programs in the US for free, STUDY ABROAD IN USA,
dradhika29
Offline Offline
Send Email Send Email
 
#668 From: "Dave Silvia" <dsilvia@...>
Date: Thu Mar 26, 2009 3:27 am
Subject: Re: Separate output directories for different Visual Studio versions
db_vs_dave
Offline Offline
Send Email Send Email
 
...btw, if you have separate static and shared wxWidgets libraries, this
model works quite well for segregating these, too!;)

:-Dave S.
----- Original Message -----
From: "Dave Silvia" <dsilvia@...>
To: <wx-users@...>
Cc: "anthemion-devtools" <anthemion-devtools@yahoogroups.com>;
"wxMS_developers" <wxMS_developers@yahoogroups.com>
Sent: Wednesday, March 25, 2009 10:17 PM
Subject: Re: Separate output directories for different Visual Studio
versions


> I've been dealing with this scenario for a couple of years now. It's quite
> simple to deal with. I am a DialogBlocks user and have been almost since
> my first encounter with wxWidgets. At one time I approached Julian Smart
> with my need to have various versions of wxWidgets for my separate builds
> of not only Microsoft platforms, but also my various flavors of GCC. Some
> way to have a central build setup that could share one set of sources
> branched out into many versions for wxWidgets libraries. He saw the need,
> but didn't have any immediate solutions via DialogBlocks or wxWidgets
> proper.
>
> After looking over the build process of wxWidgets, I noticed a variable
> there that was virtually everywhere, but never really used: CFG. This
> variable is appended to the library _and_ build directories universally. I
> brought this to Julian's attention, and after some minor preliminary
> discussion, he included the variable in the property sheet for compiler
> configurations in DialogBlocks. He also installed several DialogBlocks
> variables for the separate MSVCDIR variables (as DialogBlocks designates
> them), however, these are not yet fully implemented in DialogBlocks for
> 'automagic' switching for the individual compiler configurations, but I'm
> sure this will be done at some future date.
>
> Now, this does not mean that I'm advocating you use DialogBlocks (although
> I do believe it is a wise decision for any serious developer to make!;),
> it merely means that, 'yes', there is a way to keep your separate builds.
> When building wxWidgets (using the distributed makefile(s) as DialogBlocks
> does), simply add a command line definition for CFG, e.g.,
> '/DCFG=.VC90.Win32', the resultant directory names in build and lib will
> be 'vc_msw[d].VC90.Win32' and 'vc_lib.VC90.Win32', respectively. All you
> must needs then do is point your individual builds at the appropriate lib
> directory!;)
>
> BTW, another find advantage to DialogBlocks is that it properly builds
> wxWidgets for any platform that the wxWidgets toolkits runs on. It 'knows'
> all the correct parameters to pass to the distribution makefiles to effect
> a correct build for whatever flavor of compiler you might have!:-) Even
> though DialogBlocks is a commercial IDE, its 'forever' evaluation version
> (free!!!) will reliably build wxWidgets for any platform, quite worth its
> price (free!!!?).
>
> HTH:
>
> thx,
> Dave S.
>
> Development with wxWidgets on MSWindows
> http://tech.groups.yahoo.com/group/wxMS_developers/
>
> wxWidgets Code Exchange
> http://wxcodex.net/
>
> ----- Original Message -----
> From: "Kenneth Porter" <shiva.blacklist@...>
> Newsgroups: comp.soft-sys.wxwindows
> To: <wx-users@...>
> Sent: Wednesday, March 25, 2009 8:28 PM
> Subject: Separate output directories for different Visual Studio versions
>
>
>>
>>
>> I need to maintain an app with both VS2005 and VS2008 builds, and will
>> probably soon need to get a VS2010 build going. (Fortunately, I've been
>> able to retire my VC6 build.) Currently I clean my wxWidgets tree and
>> rebuild to switch versions, but it would be nice to be able to leave all
>> versions built in separate output directories. Are there any plans to
>> have
>> that in the standard distro?
>>
>> I'm linking to wx statically (so my demo application and my non-GUI
>> library
>> each have their own copies of wx that don't know about each other), and
>> to
>> the compiler runtime dynamically (application and all 3rd party libraries
>> share one copy of the compiler runtime).
>> _______________________________________________
>> wx-users mailing list
>> wx-users@...
>> http://lists.wxwidgets.org/mailman/listinfo/wx-users
>
> _______________________________________________
> wx-users mailing list
> wx-users@...
> http://lists.wxwidgets.org/mailman/listinfo/wx-users

#667 From: "Dave Silvia" <dsilvia@...>
Date: Thu Mar 26, 2009 3:17 am
Subject: Re: Separate output directories for different Visual Studio versions
db_vs_dave
Offline Offline
Send Email Send Email
 
I've been dealing with this scenario for a couple of years now. It's quite
simple to deal with. I am a DialogBlocks user and have been almost since my
first encounter with wxWidgets. At one time I approached Julian Smart with
my need to have various versions of wxWidgets for my separate builds of not
only Microsoft platforms, but also my various flavors of GCC. Some way to
have a central build setup that could share one set of sources branched out
into many versions for wxWidgets libraries. He saw the need, but didn't have
any immediate solutions via DialogBlocks or wxWidgets proper.

After looking over the build process of wxWidgets, I noticed a variable
there that was virtually everywhere, but never really used: CFG. This
variable is appended to the library _and_ build directories universally. I
brought this to Julian's attention, and after some minor preliminary
discussion, he included the variable in the property sheet for compiler
configurations in DialogBlocks. He also installed several DialogBlocks
variables for the separate MSVCDIR variables (as DialogBlocks designates
them), however, these are not yet fully implemented in DialogBlocks for
'automagic' switching for the individual compiler configurations, but I'm
sure this will be done at some future date.

Now, this does not mean that I'm advocating you use DialogBlocks (although I
do believe it is a wise decision for any serious developer to make!;), it
merely means that, 'yes', there is a way to keep your separate builds. When
building wxWidgets (using the distributed makefile(s) as DialogBlocks does),
simply add a command line definition for CFG, e.g., '/DCFG=.VC90.Win32', the
resultant directory names in build and lib will be 'vc_msw[d].VC90.Win32'
and 'vc_lib.VC90.Win32', respectively. All you must needs then do is point
your individual builds at the appropriate lib directory!;)

BTW, another find advantage to DialogBlocks is that it properly builds
wxWidgets for any platform that the wxWidgets toolkits runs on. It 'knows'
all the correct parameters to pass to the distribution makefiles to effect a
correct build for whatever flavor of compiler you might have!:-) Even though
DialogBlocks is a commercial IDE, its 'forever' evaluation version (free!!!)
will reliably build wxWidgets for any platform, quite worth its price
(free!!!?).

HTH:

thx,
Dave S.

Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/

wxWidgets Code Exchange
http://wxcodex.net/

----- Original Message -----
From: "Kenneth Porter" <shiva.blacklist@...>
Newsgroups: comp.soft-sys.wxwindows
To: <wx-users@...>
Sent: Wednesday, March 25, 2009 8:28 PM
Subject: Separate output directories for different Visual Studio versions


>
>
> I need to maintain an app with both VS2005 and VS2008 builds, and will
> probably soon need to get a VS2010 build going. (Fortunately, I've been
> able to retire my VC6 build.) Currently I clean my wxWidgets tree and
> rebuild to switch versions, but it would be nice to be able to leave all
> versions built in separate output directories. Are there any plans to have
> that in the standard distro?
>
> I'm linking to wx statically (so my demo application and my non-GUI
> library
> each have their own copies of wx that don't know about each other), and to
> the compiler runtime dynamically (application and all 3rd party libraries
> share one copy of the compiler runtime).
> _______________________________________________
> wx-users mailing list
> wx-users@...
> http://lists.wxwidgets.org/mailman/listinfo/wx-users

#666 From: "Dave Silvia" <dsilvia@...>
Date: Mon Mar 23, 2009 1:04 am
Subject: [ANN: MDIBitmapBrowser]
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi!

This is an application which was originally intended to be a tutorial.
When it grew so large that 'tutorial' was an inappropriate term and
the task of authoring such a tutorial grew to a scope beyond simple
descriptions, it graduated to a demo. However, it soon outgrew even
that classification. It is, for all practical intents and purposes, a
complete application for manipulation of images in an MDI paradigm
written solely in wxWidgets. One says 'complete', but then, no piece
of software ever attains that ultimate goal. It is complete in the
sense that it addresses its current design parameters to a level of
usefulness sufficient for practical application.

Its name implies that it is a tool for browsing graphic images, much
like the common Windows tool which has had various names through
several incarnations, being more or less a viewer and little more.
However, the name is misleading. It has many more functions than
simple viewing, as a perusal of the built in help will reveal. One
can adjust size, rotation, various coloring parameters and schemes,
mirror, convert to other formats, and more. On the other hand, it is
by no means a tool of the complexity or caliber of PhotoShop, Paint
Shop Pro, The Gimp, and other master graphics tools. Such
functionality is beyond the intrinsic scope of wxWidgets alone, and
certainly beyond expertise of MDIBitmapBrowser's author to write from
'scratch'. But it is a most useful tool, in and of itself. Besides it
is a practical 'guide book' for manipulating images in wxWidgets and
illustrates the capabilities of MDI for more than just simple
multiple document display. In view of all this, MDIBitmapBrowser
should be of some interest to a variety of developers and users in
the wxWidgets and associated communities.

The full source, along with the DialogBlocks project used to launch
the graphics and the various platform 'build' files (.sln/.vcproj and
makefiles), sample images to use for 'safe' testing of your build,
and a 'Gotchas' directory listing the ins and outs discovered in
development, are available in a zip archive at:

wxWidgets Code Exchange

In the 'Applications' section.

NOTE: MDI is a 'unique' Microsoft-ism. True MDI implementation only
exists on Windows platforms. However, the wxWidgets toolkit 'adapts'
the MDI paradigm to wxNotebook. The look and feel, obviously, are not
the same, but the basic functionality and methods for image
manipulation are the same. The ability to drag and drop from one MDI
frame to another, for example, is not available in non-Windows
Notebook mode, but drag and drop to other applications is still
possible. Some features were 'modified' for non-Microsoft platforms
and some simply left out.

Enjoy!Smile

thx,
Dave S.

wxMS_developers - Development with wxWidgets on Windows
http://tech.groups.yahoo.com/group/wxMS_developers/

The wxWidgets Code Exchange
http://www.wxCodex.net

#665 From: "al_lo_ja" <ab@...>
Date: Thu Mar 5, 2009 11:57 pm
Subject: Re: How do you organize your source files?
al_lo_ja
Offline Offline
Send Email Send Email
 
Thanks for your reply, Ralph.

I added a zip file in the Files section called MVCTest.zip.
It contains a demo app to illustrate the MVC concept with wxWidgets.
The form contains a text box with a value, and 2 buttons: increment, decrement.

The project does not contain the events, though, because I am not sure how to do
it.

Who can help and make the app work? I guess there is more than one way to do it.
It could be interesting to discuss these.
You can post your solution to the Files section.
Thanks!

Kind regards,
Al


--- In wxMS_developers@yahoogroups.com, Ralph Pass <rppass@...> wrote:
>
> I derive my controller from Frame and put the events there.  My view
> creates a view given a wxDC.  My events pass relevant information to the
> model.  The events also decide if it was such that the views need to be
> updated.  It also checks the model to see if the model thinks the views
> need to be updated.
> Conceptually, I have the controllers separate from the models separate
> from the views.
>
> Ralph
>
> al_lo_ja wrote:
> >
> > Hello,
> >
> > I want a clear separation between the UI and the business logic.
> >
> > How do you achieve this? How do you organize your source files for
> > your applications? Which folders do you generally create?
> >
> > I have tried this for my first wxWidget application:
> > \main.cpp
> > \MyApp.h
> > \MyApp.cpp
> > \Controllers\MyAppController.h
> > \Controllers\MyAppController.cpp
> > \Models\MyAppModel.h
> > \Models\MyAppModel.cpp
> > \Views\MyMainWindow.h
> > \Views\MyMainWindow.cpp
> >
> > - main.cpp contains only DECLARE_APP(MyApp) and IMPLEMENT_APP(MyApp)
> > - the MyApp class inherits from wxApp. MyApp.cpp contains the OnInit
> > method and creates a MyAppController object
> > - the MyAppController object creates a MyAppModel object and a
> > MyMainWindow object
> > - MyAppModel is the core of the application and knows nothing about
> > the GUI
> > - MyMainWindow inherits from wxFrame and is the main window of the
> > application
> >
> > As you can see I've been trying to implement the MVC
> > (model/view/controller) pattern. But I don't know where's the best
> > place to put the event handlers.
> >
> > How do you organize your source files? Where do you catch events?
> >
> > Kind regards,
> > Al
> >
> >
>

#664 From: Ralph Pass <rppass@...>
Date: Wed Mar 4, 2009 9:09 pm
Subject: Re: How do you organize your source files?
rppassiii
Offline Offline
Send Email Send Email
 
I derive my controller from Frame and put the events there.  My view
creates a view given a wxDC.  My events pass relevant information to the
model.  The events also decide if it was such that the views need to be
updated.  It also checks the model to see if the model thinks the views
need to be updated.
Conceptually, I have the controllers separate from the models separate
from the views.

Ralph

al_lo_ja wrote:
>
> Hello,
>
> I want a clear separation between the UI and the business logic.
>
> How do you achieve this? How do you organize your source files for
> your applications? Which folders do you generally create?
>
> I have tried this for my first wxWidget application:
> \main.cpp
> \MyApp.h
> \MyApp.cpp
> \Controllers\MyAppController.h
> \Controllers\MyAppController.cpp
> \Models\MyAppModel.h
> \Models\MyAppModel.cpp
> \Views\MyMainWindow.h
> \Views\MyMainWindow.cpp
>
> - main.cpp contains only DECLARE_APP(MyApp) and IMPLEMENT_APP(MyApp)
> - the MyApp class inherits from wxApp. MyApp.cpp contains the OnInit
> method and creates a MyAppController object
> - the MyAppController object creates a MyAppModel object and a
> MyMainWindow object
> - MyAppModel is the core of the application and knows nothing about
> the GUI
> - MyMainWindow inherits from wxFrame and is the main window of the
> application
>
> As you can see I've been trying to implement the MVC
> (model/view/controller) pattern. But I don't know where's the best
> place to put the event handlers.
>
> How do you organize your source files? Where do you catch events?
>
> Kind regards,
> Al
>
>

#663 From: "al_lo_ja" <ab@...>
Date: Wed Mar 4, 2009 7:24 pm
Subject: How do you organize your source files?
al_lo_ja
Offline Offline
Send Email Send Email
 
Hello,

I want a clear separation between the UI and the business logic.

How do you achieve this? How do you organize your source files for your
applications? Which folders do you generally create?

I have tried this for my first wxWidget application:
\main.cpp
\MyApp.h
\MyApp.cpp
\Controllers\MyAppController.h
\Controllers\MyAppController.cpp
\Models\MyAppModel.h
\Models\MyAppModel.cpp
\Views\MyMainWindow.h
\Views\MyMainWindow.cpp

- main.cpp contains only DECLARE_APP(MyApp) and IMPLEMENT_APP(MyApp)
- the MyApp class inherits from wxApp. MyApp.cpp contains the OnInit method and
creates a MyAppController object
- the MyAppController object creates a MyAppModel object and a MyMainWindow
object
- MyAppModel is the core of the application and knows nothing about the GUI
- MyMainWindow inherits from wxFrame and is the main window of the application

As you can see I've been trying to implement the MVC (model/view/controller)
pattern. But I don't know where's the best place to put the event handlers.


How do you organize your source files? Where do you catch events?

Kind regards,
Al

#661 From: "Dave Silvia" <dsilvia@...>
Date: Sun Jan 25, 2009 6:41 am
Subject: New file archive of DB and wxWidgets CHM's
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi,

I've just uploaded a zip archive of modified CHM files for DialogBlocks
and wxWidgets. Modifications are:

1) Added more navigation

2) Added more search parameters

3) Added Favorites tab

I find "Favorites" handy for marking topics that apply to my current
project and/or topics I visit frequently. Search parameters provide for
narrowing down searches more effectively. Navigation provides for
back/forward and previous/next in a different way than what is included
in the pages in the CHM.

Enjoy,
Dave S.

#658 From: "Dave S." <dsilvia@...>
Date: Thu Dec 25, 2008 10:38 pm
Subject: Re: {Disarmed} Re: Issues with POP3/wxSocketClient
db_vs_dave
Offline Offline
Send Email Send Email
 
Hi, Andy!
 
Just curious... why VC8? Why not VC9 on Vista 64?
 
thx,
Dave S.
----- Original Message -----
Sent: Sunday, December 21, 2008 11:38 AM
Subject: RE: {Disarmed} Re: [wxMS_developers] Issues with POP3/wxSocketClient

Hi,

 

I posted some code in a separate message a few minutes ago, I just wanted to point out that the code runs error free when compiled in Release mode, and works as it should when saving the memory block to a file (and viewing it in a text editor). So the problems only appear in Debug mode on VC8/Vista 64. I can live with that I guess hehe.

 

--

Kind Regards,

 

Andy 'Fish-Guy' Kellett <andy@...>

http://www.f1-software.com

 

From: wxMS_developers@yahoogroups.com [mailto:wxMS_developers@yahoogroups.com] On Behalf Of Dave Silvia
Sent: Saturday, December 20, 2008 10:45 PM
To: wxMS_developers@yahoogroups.com
Subject: {Disarmed} Re: [wxMS_developers] Issues with POP3/wxSocketClient

 

Hi, Andy!

 

It's a little difficult to discuss the problem when the only information available is that you're using wxSocketClient. The problem may be further up the line. With only this one piece of information, one must assume that everything before the call to wxSocketClient methods/functions to retrieve the messages is performing correctly and that everything that was needed to be done before the wxSocketClient transactions was done!;)

 

It's much, much easier to talk about problems and issues if you attach your project (or a facsimile) to a posting you make from your email client (Yahoo! Groups does not do attachments!:-< ).

 

If you're using DialogBlocks, it's even easier to "share" as all one must needs do is attach the .pjd file (DialogBlocks project file). This will allow the receiver to build and run on their own system quite easily.

 

Any attachments should be in archive format (zip or other) to reduce size (.pjd's are quite large, but very compressible!;) and to make it more likely that the receiver's email client/antispam won't prevent its delivery.

 

The only thing I can do, from the information available here, is make a "swag" at a possibility. It appears that an "undocumented procedure" in wxSocketBase has to be performed first. I put it in quotes because it actually is documented, but only "before" the fact. That is, most wxWidgets "Base" classes are not intended to be used, only derived from. Hence, a developer (like me!;) doesn't often look at base classes in wxWidgets classes. The assumption being that the derived wxWidgets class is/has taken care of any parent class necessities.

 

In looking at the wxSocketBase documentation I see a blurb:

 

>>>>> 

wxSocketBase is the base class for all socket-related objects, and it defines all basic IO functionality.

Note: (Workaround for implementation limitation for wxWidgets up to 2.5.x) If you want to use sockets or derived classes such as wxFTP in a secondary thread, call wxSocketBase::Initialize() (undocumented) from the main thread before creating any sockets - in wxApp::OnInit for example.

 

<<<<< 

 

Now, it does say this is for wxWidgets up to 2.5.x, but it's the only "swag" I've got right now!:-( If it doesn't help, you might like to consider archiving an example and attaching it to an email client generated post.

 

HTH:

 
thx,
Dave S.
 
From a Braille bumper sticker...
 
If you can read this, you are too close!
 
 
wxMS_developers - Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
 
wxWidgets Code Exchange
http://www.wxCodex.net/

> -- On Sat, 20 Dec 2008 21:20:29 -0500 Andy Kellett wrote --

> Hi,

> 

> I'm trying to write a really simple POP3 client using wxSocketClient which should connect to

> a POP3 account, and download all messages. It is to be part of my order handling processing

> system and I am having some odd issues that I can't seem to solve.

> 

> I am able to handle everything up to retrieving the actual message. I have tried a number of

> different methods to try and get this to work and so far I have not found anything that works

> consistently.

> 

> The first method was one I saw on a wxWidgets forum, involving a large string buffer. Call

> the Read() command and add the returned string to the main buffer string, parse the newline

> and remove the entire line to shorten the string, then repeat till the end of the message

> (single line with '.'). This only works a little bit and the socket seems to stop reading

> after a couple of messages, mid message, for no apparent reason.

> 

> Another idea I had was to allocate a block of memory big enough to hold the message, and call

> a Read() command with this buffer sixe, thinking the message would just read into memory

> where I can process it further. The problem here is that every so often, it doesn't work. It

> works on about 90% of the messages, but doesn't read in the entire thing, the LIST command

> for the next message still recovers parts of the previous message. The documentation for

> Read() doesn't state if there is a limit on the amount of data it transfers at one time, or

> if there is a way to wait for the buffer to contain a certain amount of data before reading.

> 

> I guess my question, is does someone have any POP3 retreival code anywhere, or could explain

> a process on how to make this work? I have found samples on the net for everything except

> POP3 hehe =)  Any help is greatly appreciated =) Thanks in advance.

> 

> --

> Kind Regards,

> 

> Andy 'Fish-Guy' Kellett <andy@...>

 




avast! Antivirus: Inbound message clean.

Virus Database (VPS): 081221-0, 12/21/2008
Tested on: 12/21/2008 6:04:07 PM
avast! - copyright (c) 1988-2008 ALWIL Software.





avast! Antivirus: Outbound message clean.

Virus Database (VPS): 081225-0, 12/25/2008
Tested on: 12/25/2008 4:38:10 PM
avast! - copyright (c) 1988-2008 ALWIL Software.



#657 From: "Bob Paddock" <graceindustries@...>
Date: Mon Dec 22, 2008 1:54 pm
Subject: Re: Issues with POP3/wxSocketClient
ka8bmt
Offline Offline
Send Email Send Email
 
On Sat, Dec 20, 2008 at 9:20 PM, Andy Kellett <andy@...> wrote:
> Hi,
>
> I'm trying to write a really simple POP3 client using wxSocketClient which
> should connect to a POP3 account, and download all messages. It is to be
> part of my order handling processing system and I am having some odd issues
> that I can't seem to solve.

Take a look at http://mailfilter.sf.net 's code.  A lot of problems
are actually on the server end, especially if you are trying to deal with
unknown servers.  You can see some of the server work around in the
code comments.

#656 From: "Bob Paddock" <graceindustries@...>
Date: Mon Dec 22, 2008 1:49 pm
Subject: Re: {Disarmed} Re: Issues with POP3/wxSocketClient
ka8bmt
Offline Offline
Send Email Send Email
 
> So the problems only appear in Debug mode on VC8/Vista 64. I
> can live with that I guess hehe.

64-bit problems more often than not, are a case where size_t should
have been used rather than int or unsigned int/long etc.

#655 From: "Andy Kellett" <andy@...>
Date: Sun Dec 21, 2008 4:28 pm
Subject: Re: Issues with POP3/wxSocketClient
f1software2000
Online Now Online Now
Send Email Send Email
 

Hi,

 

Dave, thanks for your feedback. I am aware of the Initialize() command you pointed out (read over those docs lots of times!) and do use it to make sure the thread isn’t a problem. I have pasted the function here for reading purposes, the project has too many pieces to put together and attach (libs etc.) so this should be somewhat easier. The DoPOP3() is called right now after a button is clicked on the window, eventually when its working it will be automated etc.

 

Here is a code example:

 

void SaleMonitorWindow::DoPOP3MailCheck(void)

{

      // This is where the magic is done to check the email account

      char WorkString[4096];  char TempWord[4096];

      char BufferString[4096];

      uLong ReadCount = 0;

 

      wxSocketBase::Initialize(); // Needed because we are in a multi-thread environment

      wxIPV4address  addr;

 

      Dexter.StringPrint(WorkString, "%s", Dexter.XMLGetString(PREFS_POP3_SERVER, DEFAULT_POP3_SERVER));

      addr.Hostname(WorkString); // mail.f1-software.com

 

      uLong TempPort = Dexter.XMLGetNumber(PREFS_POP3_PORT, DEFAULT_POP3_PORT);

      addr.Service(TempPort); // POP3 Port Number

 

      // Create the socket

      wxSocketClient* Socket = new wxSocketClient();

      Socket->SetTimeout(10);       // 10 Second Timeout

 

      // Wait for the Connected event

      Socket->Connect(addr, false);

      if(!Socket->WaitOnConnect(-1))

      {

            debugmessage(DEX_DEBUG_LOW, "DoPOP3: Connection Timed Out");

            WriteToErrorTab("<font color=red>Connection To %s [%d] Timed Out</font>", Dexter.XMLGetString(PREFS_POP3_SERVER, DEFAULT_POP3_SERVER), Dexter.XMLGetNumber(PREFS_POP3_PORT, DEFAULT_POP3_PORT));

            Socket->Close();

            return;

      }

 

      // Make sure it is really connected

      if(!Socket->IsConnected())

      {

            debugmessage(DEX_DEBUG_LOW, "DoPOP3: Connection Refused?");

            WriteToErrorTab("<font color=red>Unable To Connect To %s [%d]</font>", Dexter.XMLGetString(PREFS_POP3_SERVER, DEFAULT_POP3_SERVER), Dexter.XMLGetNumber(PREFS_POP3_PORT, DEFAULT_POP3_PORT));

            Socket->Close();

            return;

      }

 

      // At this point, we should have established a connection. We should wait for the

      // +OK to signify that we are ready to process some commands

      ForceRead(Socket);

 

      // This must start with a + sign according to the RFC

      if(POP3Message[0] != '+')

      {

            debugmessage(DEX_DEBUG_LOW, "** ERROR ** DoPOP3: Server Connected & Returned Error (Shutdown?) [%s]", POP3Message);

            Socket->Close();

            return;

      }

 

      debugmessage(DEX_DEBUG_LOW, "Received OK");

 

      // Now we can go ahead and send a USER command to try to connect to the server

      Dexter.StringPrint(WorkString, "USER %s\r\n", Dexter.XMLGetString(PREFS_POP3_USERNAME, ""));

      debugmessage(DEX_DEBUG_LOW, "DoPOP3: Sending: '%s'", WorkString);

      Socket->Write(WorkString, Dexter.StringLength(WorkString));

 

      // Wait for the response

      ForceRead(Socket);

     

      // See what the server said to us

      if(POP3Message[0] != '+')

      {

            // Some error occured

            debugmessage(DEX_DEBUG_LOW, "DoPOP3: Failed Command for USER (%s)", POP3Message);

            Socket->Close();

            return;

      }

 

      // System is awaiting a password from the user

      Dexter.StringPrint(WorkString, "PASS %s\r\n", Dexter.XMLGetString(PREFS_POP3_PASSWORD, ""));

      debugmessage(DEX_DEBUG_LOW, "DoPOP3: Sending Password '%s'", WorkString);

      Socket->Write(WorkString, Dexter.StringLength(WorkString));

 

      // Wait for the password response

      ForceRead(Socket);

 

      if(POP3Message[0] != '+')

      {

            // The password check failed

            debugmessage(DEX_DEBUG_LOW, "** ERROR ** DoPOP3: Bad Password [%s]", POP3Message);

            Socket->Close();

            return;

      }

 

      // Now that we are logged into the POP3 server, send a STAT command to display info

      // About the current mail queue system

      Socket->Write("STAT\r\n", 6);

 

      // Wait for the resulting response

      ForceRead(Socket);

      debugmessage(DEX_DEBUG_LOW, "DoPop3: STAT Reaponse - '%s'", POP3Message);

      if(POP3Message[0] != '+')

      {

            debugmessage(DEX_DEBUG_LOW, "** ERROR ** DoPOP3: Failed To Process STAT Command (%s)", POP3Message);

      }

 

      // The resulting result will contain 3 words (should), +OK, a mail count and an octet count

      Dexter.StringParseResetPointer();

      Dexter.StringParseWord(TempWord, POP3Message, sizeof(TempWord), false, " ");  // +OK

      Dexter.StringParseFindNextNonSpace(POP3Message);

 

      Dexter.StringParseWord(TempWord, POP3Message, sizeof(TempWord), false, " ");  // Num Messages

      Dexter.StringParseFindNextNonSpace(POP3Message);

      uLong MessageCount = Dexter.StringToInteger(TempWord);

 

      Dexter.StringParseWord(TempWord, POP3Message, sizeof(TempWord), false, " ");  // Octet Count

      Dexter.StringParseFindNextNonSpace(POP3Message);

      uLong ByteCount = Dexter.StringToInteger(TempWord);

 

      // Display the output of the newly acquired data

      debugmessage(DEX_DEBUG_LOW, "DoPOP3: Account Has %d Emails, %d Bytes", MessageCount, ByteCount);

     

      //Any messages to process?

      if(MessageCount == 0)

      {

            debugmessage(DEX_DEBUG_LOW, "DoPOP3: No Messages To Process, Sending QUIT");

            Socket->Write("QUIT\r\n", 6); // Clean Exit

            Socket->Close();

            return;

      }

 

      // Update the Email Tab

      Dexter.StringPrint(WorkString, "POP3 Account Has %d Messages (%.2fKb Data)", MessageCount, ((float)ByteCount/1024.0f));

      uLong EmailsPerTime = Dexter.XMLGetNumber(PREFS_EMAIL_PER_SESSION, DEFAULT_EMAIL_SESSION);

      uLong EmailCheckLoop = EmailsPerTime;

 

      // Are there more mails on the account than this? Process a few mails at a time

      // Instead of hundreds to help balance load.

      if(EmailsPerTime > 0)

      {

            if(MessageCount > EmailsPerTime)

            {

                  // Some of these messages will be truncated

                  Dexter.StringPrint(TempWord, " - Processing First %d Messages Only", EmailsPerTime);

                  Dexter.StringAttach(WorkString, TempWord);

            }

      } else

      {

            EmailCheckLoop = MessageCount; // Get the real message count instead!

      }

 

      // Write the message to the email tab

      WriteToEmailTab(WorkString);

 

      // Now we can start a loop to read in each message. Each message is retreived with RETR

      // And will respond with a +OK if it can be grabbed. After that, the entire message is

      // Transmitted. The very last line set will have "." to symbolize the End of Message.

 

      // For now, we are just dumping the entire message to the log, and teaching the code how

      // To recognize that the end of message has been reached. There is no DELE command issued

      // At this time.

      debugmessage(DEX_DEBUG_LOW, "Checking Email: Attempting To Track %d Messages", EmailCheckLoop);

 

      for(uLong CheckMessages=0; CheckMessages<EmailCheckLoop; CheckMessages++)

      {

            bool ProcessMessage = true;

            debugmessage(DEX_DEBUG_LOW, "DoPOP3: Attempting To Check Message %d", CheckMessages+1);

 

            // Flush out anything in the Read() buffer completely

            //Socket->Discard();

            Dexter.StringClear(BufferString);   Dexter.StringClear(WorkString);      Dexter.StringClear(TempWord);

 

            // We should query for the sixe of the message

            Dexter.StringPrint(TempWord, "LIST %d\r\n", (CheckMessages+1));

            Socket->Write(TempWord, Dexter.StringLength(TempWord));

 

            // Get the response back from the server

            ForceRead(Socket);

            if(POP3Message[0] != '+')

            {

                  debugmessage(DEX_DEBUG_LOW, "** ERROR ** DoPOP3[%d]: LIST Command Failed [%s]", CheckMessages+1, POP3Message);

                  ProcessMessage = false;

            }

 

            // Scan the received command to get the size of the message

            Dexter.StringParseResetPointer();

            Dexter.StringClear(TempWord);

            Dexter.StringParseWord(TempWord, POP3Message, 25, false, " "); // +OK

            Dexter.StringParseWord(TempWord, POP3Message, 25, false, " "); // 3

            Dexter.StringParseWord(TempWord, POP3Message, 25, false, " "); // 2125

            uLong SizeInBytes = Dexter.StringToInteger(TempWord);

            debugmessage(DEX_DEBUG_LOW, "DoPOP3[%d]: Size Of Message (Octets) : %d Bytes", CheckMessages+1, SizeInBytes);

 

            // We could add a size check limit if we wanted to

 

            // Create a buffer size. We should add a good size space buffer to cover the entire

            // Header, so we will use 4Kb for that

            uLong EstimatedBuffer = (4096 + SizeInBytes);

 

            // Try to allocate the memory block

            uByte* FileData = (uByte*)Dexter.AllocMemory(EstimatedBuffer, DEX_MEM_FAST);

            if(!FileData)

            {

                  debugmessage(DEX_DEBUG_LOW, "** ERROR ** DoPOP3[%d]: Couldn't Allocate %d Bytes of Ram", CheckMessages+1, EstimatedBuffer);

                  ProcessMessage = false;

            } else

            {

                  debugmessage(DEX_DEBUG_LOW, "DoPOP3[%d]: Allocated Block Of Memory: %d Sizes", CheckMessages+1, EstimatedBuffer);

            }

 

            // If the block is allocated, then dump the message into it

            if(ProcessMessage == true)

            {

                  // Here we can now issue the RETR command to get the message

                  Dexter.StringPrint(TempWord, "RETR %d\r\n", CheckMessages+1);

                  Socket->Write(TempWord, Dexter.StringLength(TempWord));

 

                  // We should issue a Pause for the server to issue the command

                  //Sleep(100); // 100 ms pause

 

                  // Force a Reply

                  ForceRead(Socket);

                  if(POP3Message[0] != '+')

                  {

                        debugmessage(DEX_DEBUG_LOW, "** ERROR ** DoPOP3: RETR Command Failed [%s]", CheckMessages+1, POP3Message);

                        ProcessMessage = false;

                  }

            }

 

            if(ProcessMessage == true)

            {

                  // RETR command issued and responded OK, now we can get the full message

                  // Dump the entire message to RAM

                  //Socket->Wait(-1, 100);

                  Socket->WaitForWrite(1);

                  Socket->Read(FileData, EstimatedBuffer);

                  uLong LastCount = Socket->LastCount();

                  debugmessage(DEX_DEBUG_LOW, "DoPOP3[%d]: Sucked out %d bytes from Socket", CheckMessages+1, LastCount);

 

                  // Free the block

                  Dexter.FreeMemory(FileData);

            }

      } // Next CheckMessages

 

      // Shut down the connection

      debugmessage(DEX_DEBUG_LOW, "DoPOP3: All Mail Processed, Issuing QUIT");

      Socket->Write("QUIT\r\n", 6);

      Socket->Close();

      return;

}

 

// ----------------------------------------------------------------------------

// ForceRead();

//

// Read a string of data from the socket in 1Kb chunks. The optional StripCRLF

// (Set to TRUE by default on prototype) will seek out the CRLF char in the

// Retrieved string and replace it with a NULL, so it can be handled as a

// Normal string. Intended for single-line responses only.

//

// If boolean is set to false, there is no additional processing done to the

// Recovered data.

// ----------------------------------------------------------------------------

void ForceRead(wxSocketClient* sock, const bool StripCRLF)

{

      const uLong SIZE_OF_BUFFER = 4096;

      char TempString[4096];

      TempString[SIZE_OF_BUFFER-1] = 0;

      //Dexter.StringFillCharacter(POP3Message, '\0', sizeof(POP3Message));

 

      // Grab the data in the current Read buffer    

      sock->Read(TempString, SIZE_OF_BUFFER-2); // This is purposely smaller, so we can always force a NULL at the end of the data

 

      // Ensure this string is always NULL terminated

      TempString[SIZE_OF_BUFFER-1] = 0; // Always NULL the last char in the string before it's looked at

 

      // This is a dirty way to seek out the \r\n character set, as StringReplace

      // Seems to break. It replaces the first occurence with a null, so it tries

      // To end the string. Without this, some char values would have strange characters

      // At the end and might not even end up being null terminated.

      if(StripCRLF == true)

      {

            for(uWord DoCheck=0; DoCheck<SIZE_OF_BUFFER; DoCheck++)

            {

                  if(TempString[DoCheck] == '\r')

                  {

                        TempString[DoCheck] = 0;

                        DoCheck = 9999; // Break the loop

                  }

            }

      }

 

      // Copy this to the global string entry ready for user processing

      Dexter.StringPrint(POP3Message, TempString, sizeof(POP3Message));

}

 

And here is the output of the log:

 

4.293: DoPOP3: Sending: 'USER *********

'

  4.317: DoPOP3: Sending Password 'PASS ******

'

  6.566: DoPop3: STAT Response - '+OK 302 3458847'

  6.567: DoPOP3: Account Has 302 Emails, 3458847 Bytes

  6.594: Checking Email: Attempting To Track 15 Messages

  6.594: DoPOP3: Attempting To Check Message 1

  6.620: DoPOP3[1]: Size Of Message (Octets) : 3338 Bytes

  6.621: DoPOP3[1]: Allocated Block Of Memory: 7434 Sizes

  6.685: DoPOP3[1]: Sucked out 3341 bytes from Socket

  6.686: DoPOP3: Attempting To Check Message 2

  6.711: DoPOP3[2]: Size Of Message (Octets) : 22373 Bytes

  6.712: DoPOP3[2]: Allocated Block Of Memory: 26469 Sizes

  6.839: DoPOP3[2]: Sucked out 22376 bytes from Socket

  6.840: DoPOP3: Attempting To Check Message 3

  6.864: DoPOP3[3]: Size Of Message (Octets) : 23055 Bytes

  6.865: DoPOP3[3]: Allocated Block Of Memory: 27151 Sizes

  6.951: DoPOP3[3]: Sucked out 23058 bytes from Socket

  6.952: DoPOP3: Attempting To Check Message 4

  6.977: DoPOP3[4]: Size Of Message (Octets) : 3722 Bytes

  6.978: DoPOP3[4]: Allocated Block Of Memory: 7818 Sizes

  7.017: DoPOP3[4]: Sucked out 3725 bytes from Socket

  7.018: DoPOP3: Attempting To Check Message 5

  7.044: DoPOP3[5]: Size Of Message (Octets) : 22734 Bytes

  7.045: DoPOP3[5]: Allocated Block Of Memory: 26830 Sizes

  7.128: DoPOP3[5]: Sucked out 22737 bytes from Socket

  7.128: DoPOP3: Attempting To Check Message 6

  7.155: DoPOP3[6]: Size Of Message (Octets) : 4952 Bytes

  7.156: DoPOP3[6]: Allocated Block Of Memory: 9048 Sizes

  7.198: DoPOP3[6]: Sucked out 4955 bytes from Socket

  7.199: DoPOP3: Attempting To Check Message 7

  7.224: DoPOP3[7]: Size Of Message (Octets) : 3337 Bytes

  7.225: DoPOP3[7]: Allocated Block Of Memory: 7433 Sizes

  7.264: DoPOP3[7]: Sucked out 3341 bytes from Socket

  7.265: DoPOP3: Attempting To Check Message 8

  7.290: DoPOP3[8]: Size Of Message (Octets) : 4233 Bytes

  7.291: DoPOP3[8]: Allocated Block Of Memory: 8329 Sizes

  7.334: DoPOP3[8]: Sucked out 4236 bytes from Socket

  7.334: DoPOP3: Attempting To Check Message 9

  7.360: DoPOP3[9]: Size Of Message (Octets) : 1411 Bytes

  7.361: DoPOP3[9]: Allocated Block Of Memory: 5507 Sizes

  7.396: DoPOP3[9]: Sucked out 1414 bytes from Socket

  7.397: DoPOP3: Attempting To Check Message 10

  7.423: DoPOP3[10]: Size Of Message (Octets) : 19165 Bytes

  7.423: DoPOP3[10]: Allocated Block Of Memory: 23261 Sizes

  7.493: DoPOP3[10]: Sucked out 17520 bytes from Socket

  7.494: DoPOP3: Attempting To Check Message 11

  7.495: ** ERROR ** DoPOP3[11]: LIST Command Failed [;]

  7.496: DoPOP3[11]: Size Of Message (Octets) : 0 Bytes

  7.497: DoPOP3[11]: Allocated Block Of Memory: 4096 Sizes

  7.498: DoPOP3: Attempting To Check Message 12

  7.519: DoPOP3[12]: Size Of Message (Octets) : 10683 Bytes

  7.520: DoPOP3[12]: Allocated Block Of Memory: 14779 Sizes

  7.570: DoPOP3[12]: Sucked out 17 bytes from Socket

  7.571: DoPOP3: Attempting To Check Message 13

  7.581: ** ERROR ** DoPOP3[13]: LIST Command Failed [Return-path: <35ANISRQKBHkdlldibXiboqp-klobmivdlldib.ZljXkavcy-plcqtXob.Zlj@...>]

  7.583: DoPOP3[13]: Size Of Message (Octets) : 0 Bytes

  7.584: DoPOP3[13]: Allocated Block Of Memory: 4096 Sizes

  7.584: DoPOP3: Attempting To Check Message 14

  7.604: DoPOP3[14]: Size Of Message (Octets) : 1389 Bytes

  7.605: DoPOP3[14]: Allocated Block Of Memory: 5485 Sizes

  7.658: DoPOP3[14]: Sucked out 18 bytes from Socket

  7.659: DoPOP3: Attempting To Check Message 15

  7.662: ** ERROR ** DoPOP3[15]: LIST Command Failed [if" alt="" border="0"></a>]

  7.663: DoPOP3[15]: Size Of Message (Octets) : 0 Bytes

  7.664: DoPOP3[15]: Allocated Block Of Memory: 4096 Sizes

  7.665: DoPOP3: All Mail Processed, Issuing QUIT

 

As you can see, something causes it to freak out on occasions and im not sure what. It works for the most part, so I could probably use it in the interim on the mails which do turn out good. Thanks again.

 

--

Kind Regards,

 

Andy 'Fish-Guy' Kellett <andy@...>

http://www.f1-software.com

 

From: wxMS_developers@yahoogroups.com [mailto:wxMS_developers@yahoogroups.com] On Behalf Of Dave Silvia
Sent: Saturday, December 20, 2008 10:45 PM
To: wxMS_developers@yahoogroups.com
Subject: {Disarmed} Re: [wxMS_developers] Issues with POP3/wxSocketClient

 

Hi, Andy!

 

It's a little difficult to discuss the problem when the only information available is that you're using wxSocketClient. The problem may be further up the line. With only this one piece of information, one must assume that everything before the call to wxSocketClient methods/functions to retrieve the messages is performing correctly and that everything that was needed to be done before the wxSocketClient transactions was done!;)

 

It's much, much easier to talk about problems and issues if you attach your project (or a facsimile) to a posting you make from your email client (Yahoo! Groups does not do attachments!:-< ).

 

If you're using DialogBlocks, it's even easier to "share" as all one must needs do is attach the .pjd file (DialogBlocks project file). This will allow the receiver to build and run on their own system quite easily.

 

Any attachments should be in archive format (zip or other) to reduce size (.pjd's are quite large, but very compressible!;) and to make it more likely that the receiver's email client/antispam won't prevent its delivery.

 

The only thing I can do, from the information available here, is make a "swag" at a possibility. It appears that an "undocumented procedure" in wxSocketBase has to be performed first. I put it in quotes because it actually is documented, but only "before" the fact. That is, most wxWidgets "Base" classes are not intended to be used, only derived from. Hence, a developer (like me!;) doesn't often look at base classes in wxWidgets classes. The assumption being that the derived wxWidgets class is/has taken care of any parent class necessities.

 

In looking at the wxSocketBase documentation I see a blurb:

 

>>>>> 

wxSocketBase is the base class for all socket-related objects, and it defines all basic IO functionality.

Note: (Workaround for implementation limitation for wxWidgets up to 2.5.x) If you want to use sockets or derived classes such as wxFTP in a secondary thread, call wxSocketBase::Initialize() (undocumented) from the main thread before creating any sockets - in wxApp::OnInit for example.

 

<<<<< 

 

Now, it does say this is for wxWidgets up to 2.5.x, but it's the only "swag" I've got right now!:-( If it doesn't help, you might like to consider archiving an example and attaching it to an email client generated post.

 

HTH:

 
thx,
Dave S.
 
From a Braille bumper sticker...
 
If you can read this, you are too close!
 
 
wxMS_developers - Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
 
wxWidgets Code Exchange
http://www.wxCodex.net/

> -- On Sat, 20 Dec 2008 21:20:29 -0500 Andy Kellett wrote --

> Hi,

> 

> I'm trying to write a really simple POP3 client using wxSocketClient which should connect to

> a POP3 account, and download all messages. It is to be part of my order handling processing

> system and I am having some odd issues that I can't seem to solve.

> 

> I am able to handle everything up to retrieving the actual message. I have tried a number of

> different methods to try and get this to work and so far I have not found anything that works

> consistently.

> 

> The first method was one I saw on a wxWidgets forum, involving a large string buffer. Call

> the Read() command and add the returned string to the main buffer string, parse the newline

> and remove the entire line to shorten the string, then repeat till the end of the message

> (single line with '.'). This only works a little bit and the socket seems to stop reading

> after a couple of messages, mid message, for no apparent reason.

> 

> Another idea I had was to allocate a block of memory big enough to hold the message, and call

> a Read() command with this buffer sixe, thinking the message would just read into memory

> where I can process it further. The problem here is that every so often, it doesn't work. It

> works on about 90% of the messages, but doesn't read in the entire thing, the LIST command

> for the next message still recovers parts of the previous message. The documentation for

> Read() doesn't state if there is a limit on the amount of data it transfers at one time, or

> if there is a way to wait for the buffer to contain a certain amount of data before reading.

> 

> I guess my question, is does someone have any POP3 retreival code anywhere, or could explain

> a process on how to make this work? I have found samples on the net for everything except

> POP3 hehe =)  Any help is greatly appreciated =) Thanks in advance.

> 

> --

> Kind Regards,

> 

> Andy 'Fish-Guy' Kellett <andy@...>

 


#654 From: "Andy Kellett" <andy@...>
Date: Sun Dec 21, 2008 5:38 pm
Subject: RE: {Disarmed} Re: Issues with POP3/wxSocketClient
f1software2000
Online Now Online Now
Send Email Send Email
 

Hi,

 

I posted some code in a separate message a few minutes ago, I just wanted to point out that the code runs error free when compiled in Release mode, and works as it should when saving the memory block to a file (and viewing it in a text editor). So the problems only appear in Debug mode on VC8/Vista 64. I can live with that I guess hehe.

 

--

Kind Regards,

 

Andy 'Fish-Guy' Kellett <andy@...>

http://www.f1-software.com

 

From: wxMS_developers@yahoogroups.com [mailto:wxMS_developers@yahoogroups.com] On Behalf Of Dave Silvia
Sent: Saturday, December 20, 2008 10:45 PM
To: wxMS_developers@yahoogroups.com
Subject: {Disarmed} Re: [wxMS_developers] Issues with POP3/wxSocketClient

 

Hi, Andy!

 

It's a little difficult to discuss the problem when the only information available is that you're using wxSocketClient. The problem may be further up the line. With only this one piece of information, one must assume that everything before the call to wxSocketClient methods/functions to retrieve the messages is performing correctly and that everything that was needed to be done before the wxSocketClient transactions was done!;)

 

It's much, much easier to talk about problems and issues if you attach your project (or a facsimile) to a posting you make from your email client (Yahoo! Groups does not do attachments!:-< ).

 

If you're using DialogBlocks, it's even easier to "share" as all one must needs do is attach the .pjd file (DialogBlocks project file). This will allow the receiver to build and run on their own system quite easily.

 

Any attachments should be in archive format (zip or other) to reduce size (.pjd's are quite large, but very compressible!;) and to make it more likely that the receiver's email client/antispam won't prevent its delivery.

 

The only thing I can do, from the information available here, is make a "swag" at a possibility. It appears that an "undocumented procedure" in wxSocketBase has to be performed first. I put it in quotes because it actually is documented, but only "before" the fact. That is, most wxWidgets "Base" classes are not intended to be used, only derived from. Hence, a developer (like me!;) doesn't often look at base classes in wxWidgets classes. The assumption being that the derived wxWidgets class is/has taken care of any parent class necessities.

 

In looking at the wxSocketBase documentation I see a blurb:

 

>>>>> 

wxSocketBase is the base class for all socket-related objects, and it defines all basic IO functionality.

Note: (Workaround for implementation limitation for wxWidgets up to 2.5.x) If you want to use sockets or derived classes such as wxFTP in a secondary thread, call wxSocketBase::Initialize() (undocumented) from the main thread before creating any sockets - in wxApp::OnInit for example.

 

<<<<< 

 

Now, it does say this is for wxWidgets up to 2.5.x, but it's the only "swag" I've got right now!:-( If it doesn't help, you might like to consider archiving an example and attaching it to an email client generated post.

 

HTH:

 
thx,
Dave S.
 
From a Braille bumper sticker...
 
If you can read this, you are too close!
 
 
wxMS_developers - Development with wxWidgets on MSWindows
http://tech.groups.yahoo.com/group/wxMS_developers/
 
wxWidgets Code Exchange
http://www.wxCodex.net/

> -- On Sat, 20 Dec 2008 21:20:29 -0500 Andy Kellett wrote --

> Hi,

> 

> I'm trying to write a really simple POP3 client using wxSocketClient which should connect to

> a POP3 account, and download all messages. It is to be part of my order handling processing

> system and I am having some odd issues that I can't seem to solve.

> 

> I am able to handle everything up to retrieving the actual message. I have tried a number of

> different methods to try and get this to work and so far I have not found anything that works

> consistently.

> 

> The first method was one I saw on a wxWidgets forum, involving a large string buffer. Call

> the Read() command and add the returned string to the main buffer string, parse the newline

> and remove the entire line to shorten the string, then repeat till the end of the message

> (single line with '.'). This only works a little bit and the socket seems to stop reading

> after a couple of messages, mid message, for no apparent reason.

> 

> Another idea I had was to allocate a block of memory big enough to hold the message, and call

> a Read() command with this buffer sixe, thinking the message would just read into memory

> where I can process it further. The problem here is that every so often, it doesn't work. It

> works on about 90% of the messages, but doesn't read in the entire thing, the LIST command

> for the next message still recovers parts of the previous message. The documentation for

> Read() doesn't state if there is a limit on the amount of data it transfers at one time, or

> if there is a way to wait for the buffer to contain a certain amount of data before reading.

> 

> I guess my question, is does someone have any POP3 retreival code anywhere, or could explain

> a process on how to make this work? I have found samples on the net for everything except

> POP3 hehe =)  Any help is greatly appreciated =) Thanks in advance.

> 

> --

> Kind Regards,

> 

> Andy 'Fish-Guy' Kellett <andy@...>

 


Messages 654 - 692 of 693   Newest  |  < Newer  |  Older >  |  Oldest
Advanced
Add to My Yahoo!      XML What's This?

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help