Win32 C programmer here - what to learn next?

  • Thread starter The Lord of the Strings
  • Start date
T

The Lord of the Strings

I used to write in Turbo C++ 3 for DOS waaaay back, then moved to
writing C in 32 bit windows using the standard windows api. I took a
many years off to pursue my musical career and now I'm realizing that
if I want to code again I should look at a newer library/api.

I took some win32 C code that worked fine in Visual C++ 6 and tried
compiling it in Visual C++ Express 2008 and it did not compile. I
checked all dependencies - includes, libraries - they were all there.
I noticed the copyright on VC++ 6 was 1998, so I think its time for
something new! I'd like to stick with C/C++.

C/C++ would still be my language of choice, but I'm not sure what the
modern options are besides C# and Java. I'm interested in developing
gui and console based applications (no web apps).

Any suggestions considering my background?
(As you can see I'm about 15 years behind...)
MFC? COM? Borland BDE?


Thanks!
 
M

Matthias Buelow

The said:
Any suggestions considering my background?
(As you can see I'm about 15 years behind...)
MFC? COM? Borland BDE?

I wouldn't make myself dependent on the Windows platform (or on any
Micros**t platform, for that matter).
For GUI programming, you can use C++ and wxWidgets (www.wxwidgets.org)
in a fairly portable way.
Anyways, this is a question that isn't really related to the C++
language itself.
 
K

kwikius

On Jan 16, 6:53 am, The Lord of the Strings

I took some win32 C code that worked fine in Visual C++ 6 and tried
compiling it in Visual C++ Express 2008 and it did not compile.  I
checked all dependencies - includes, libraries - they were all there.
I noticed the copyright on VC++ 6 was 1998, so I think its time for
something new! I'd like to stick with C/C++.

The problems you have are very much related to VC++6. In versions of VC
++ including VC7.1 Microsoft decided to make the compiler as far as
possible conformant to the C++ standard at the expense of backward
compatibility. The result was a great compiler, and for example in
VC7.1 and beyond you can do things with templates that are simply
impossible in VC6.0, but things that worked in VC6 are often invalid
fro the point of view of conforming C++.

Its a known problem of C++ that simple errors can cause huge error
messages ( In the draft of the next version of the standard there are
move sto try to help with this issue), so if you are getting
voluminous error messages when trying to compile the old code, things
often look much worse that they actually are. It is often worth
looking at the last paragraph of the error message first. Also error
messages can often give misleading hints as to the true error. OTOH
what they say is a good place to start.

It will also help to get a grasp of some of the nuances of the
language as laid down in the C++ standard, so that you can identify
how to fix problems in your old code.

I would guess at the moment you are in the worst stage of porting your
old code. Persevere, watch the list of error mesages get a bit shorter
and you are well on the way.

HTH

regards
Andy Little
 
S

Stuart Redmann

The said:
I used to write in Turbo C++ 3 for DOS waaaay back, then moved to
writing C in 32 bit windows using the standard windows api. I took a
many years off to pursue my musical career and now I'm realizing that
if I want to code again I should look at a newer library/api.

I took some win32 C code that worked fine in Visual C++ 6 and tried
compiling it in Visual C++ Express 2008 and it did not compile.

That's interesting, as I cannot image that MS changed a lot in their compiler
with regard to C code (they've improved it considerably for C++, though). Your C
code should compile fine.
> I checked all dependencies - includes, libraries - they were all there.
I noticed the copyright on VC++ 6 was 1998, so I think its time for
something new! I'd like to stick with C/C++.

Note that there is no language called C/C++. I consider myself a pretty advanced
C++ programmer, but I couldn't write a simple C application because I don't know
C's syntax.
C/C++ would still be my language of choice, but I'm not sure what the
modern options are besides C# and Java. I'm interested in developing
gui and console based applications (no web apps).

C++, C# and Java are all pretty much the same (C++ is closest to the HW, which
can be both a curse and a blessing), even their code looks quite similar. What
these languages differ from one another is the set of libraries they are shipped
with. With particular language suits your needs best cannot be determined by
anybody but you.
Any suggestions considering my background?
(As you can see I'm about 15 years behind...)
MFC? COM? Borland BDE?

It depends on. If you are already familiar with MS's GDI programming, I'd
suggest to have a look at MFC library: As it is open-source you can have a look
behind the scenes (note that MFC is practically stone-aged, so don't be
surprised if you find some features that are now outdated). If you aim for
platform independence, you could also try wxWidgets (also open source). In
contrast to MFC wxWidgets doesn't offer Doc/View support.

Regards,
Stuart
 
T

Tomás Ó hÉilidhe

The Lord of the Strings:
C/C++ would still be my language of choice, but I'm not sure what the
modern options are besides C# and Java. I'm interested in developing
gui and console based applications (no web apps).

Any suggestions considering my background?
(As you can see I'm about 15 years behind...)
MFC? COM? Borland BDE?



One big thing that's changed is that Microsoft isn't the emperor
anymore. Now you have Linux, Mac and Microsoft.

If you want to get into GUI programming, then the best thing to do
is to use a cross-platform library so that you can compile your code to
run on all three systems (and also more systems that I haven't
mentioned).

As regards picking a compiler, the gcc family is great.

As regards picking an IDE, Bloodshed Dev-C++ is great.

As regards picking a cross-platform GUI library, I'd go for
wxWidgets.

I only started using wxWidgets about a week or ago ago but already
I'm making brilliant progress (in fact I had made a hell of a lot of
progress even in the first hour or two).

To put all of these products together, you can download an IDE
called "wxDev-C++". What this is, is Dev-C++ tailored to wxWidgets. It
has a dialogue designer and so forth in it. It uses the gcc family of
compilers too. I find it great. Plus it's free! Here's the link:

http://kent.dl.sourceforge.net/sourceforge/wxdsgn/wxdevcpp_6.10.2
_setup.exe
 
L

Linonut

* The Lord of the Strings peremptorily fired off this memo:
C/C++ would still be my language of choice, but I'm not sure what the
modern options are besides C# and Java. I'm interested in developing
gui and console based applications (no web apps).

Any suggestions considering my background?
(As you can see I'm about 15 years behind...)
MFC? COM? Borland BDE?

Learn gcc. And if you're stuck on doing windows, check out mingw.
For GUIs, go cross-platform.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,770
Messages
2,569,584
Members
45,075
Latest member
MakersCBDBloodSupport

Latest Threads

Top