[Q] VS2008 beginners problems

Markstar

Senior Member
Mar 10, 2010
69
4
0
Hi,
I have started to learn C++ and have created some programs (MinGW + Code::Blocks) for the command line and I would like to add a GUI and run it on my hopefully soon-to-have WM6.5 phone.

So I installed VS2008, Windows Mobile 6 Professional SDK Refresh and Windows Mobile 6.5.3 Professional DTK.

But when I start a new C++ project for a Mobile Device, I don't get a form where I can add buttons, etc. (sadly I have no idea about GUI programming to do it by hand). Also, the items in the Toolbox are greyed out (which makes sense considering that there is no form to add items to).

The video on MSDN ("Creating your first Windows Mobile 6 Application with Visual Studio 2008") made it look so easy - but that was under C#. I can recreate those steps, so under C# I can add stuff from the Toolbox to the form which looks like a WM device, but not under C++.

Am I missing something?

Thanks in advance!
 
Last edited:

stephj

Inactive Recognized Developer
May 2, 2007
721
101
0
Lancashire
Yep, that's about right. VB and C#, are both .NET CF languages, and as such are more or less identical. C++ is usually used for MFC, ATL or good old Win32 programming models, where the code creates the windows controls, etc and draws them on the client area.

With a bit of C++ knowledge you should be able to create the same thing in C# without too much trouble, but there are a few pitfalls to fall into along the way. C++ can also be used as a .NET language but the casts required make it hideous to read and understand. Go straight to C#.

The C++ programming models take a bit of mastering, but the code runs like a bat out of hell.
 
Last edited:

Markstar

Senior Member
Mar 10, 2010
69
4
0
Thank you very much for your reply! :)

Yep, that's about right. VB and C#, are both .NET CF languages, and as such are more or less identical. C++ is usually used for MFC, ATL or good old Win32 programming models, where the code creates the windows controls, etc and draws them on the client area.
So you are saying that in C++, I pretty much HAVE to program everything by hand? (just to make sure I got you right)

With a bit of C++ knowledge you should be able to create the same thing in C# without too much trouble, but there are a few pitfalls to fall into along the way. C++ can also be used as a .NET language but the casts required make it hideous to read and understand. Go straight to C#.
K. I do know that C++ and C# should be pretty similar concerning the syntax. But still... any literature recommendations?

The C++ programming models take a bit of mastering, but the code runs like a bat out of hell.
That's why I want to stick to C++. My university prefers Java, but don't really like it and find C++ much more "elegant". However, my ideas [dreams?] about programs that I want to write eventually do involve quite some GUI. I had hoped that VS2008 would allow me to quickly get that GUI-stuff out of the way for now, since I thought I use QT for my Windows (and maybe eventually Unix) programs. But as I said, I'm still at the beginning of my learning process, where it is mostly about command line apps to learn the ropes.

Anyways, thanks again!
 
Last edited:

stephj

Inactive Recognized Developer
May 2, 2007
721
101
0
Lancashire
To be honest I only program WinMo in either Win32 C++ or C#. Although C++ and C# are quite close as far as languages are concerned, the IDE environments are completely different. Under Win32 you respond to the stream of WM_XXXXXX messages fired at your app by the operating system, one for every time something happens. If it is something your app isn't bothered about ignore it. Screen taps get converted to WM_LEFTBUTTONDOWN etc. A button is a child window of the main window, you will have to create it.

In C#, drag an object off the toolbox and drop it on the form, the IDE will maintain any events you wish to trap and use. The machine I have here only has VS 2003 on it, the 2008 machine is at work. I'll have a look at the other C++ models on it next week.

C# and Java are not too far apart, exept that C# uses the .NET framework objects.

As far as books go, I can't really recommend much as I have mastered it from the sharp end as it were, using the online help and examples for day to day, and internet trawls to tackle particular problems. Maybe others can chip in with a few ideas.

I haven't heard of QT running on Windows Mobile, but I could be wrong.

There is also MONO, which is an open source project to run .NET under Linux.
 
Last edited:

Markstar

Senior Member
Mar 10, 2010
69
4
0
To be honest I only program WinMo in either Win32 C++ or C#. Although C++ and C# are quite close as far as languages are concerned, the IDE environments are completely different. Under Win32 you respond to the stream of WM_XXXXXX messages fired at your app by the operating system, one for every time something happens. If it is something your app isn't bothered about ignore it. Screen taps get converted to WM_LEFTBUTTONDOWN etc. A button is a child window of the main window, you will have to create it.
That sounds interesting, but sadly beyond my capabilities at the moment.

In C#, drag an object off the toolbox and drop it on the form, the IDE will maintain any events you wish to trap and use. The machine I have here only has VS 2003 on it, the 2008 machine is at work. I'll have a look at the other C++ models on it next week.
Yeah, this sounds much more reasonable for what I'm trying to accomplish, but also means I have to learn 2 languages instead of one (I don't want to give up C++). I guess my Windows Mobile app has to wait for a while.

C# and Java are not too far apart, exept that C# uses the .NET framework objects.

As far as books go, I can't really recommend much as I have mastered it from the sharp end as it were, using the online help and examples for day to day, and internet trawls to tackle particular problems. Maybe others can chip in with a few ideas.

I haven't heard of QT running on Windows Mobile, but I could be wrong.
Yeah, QT is more for Symbian. But since I want C++ for both Windows and eventually Unix, I thought QT was a good choice. At that point I did not even consider creating an app for WinMo.

There is also MONO, which is an open source project to run .NET under Linux.
Yeah, I've heard of it. Maybe I'll give it a try when I feel comfortable enough with the basics. ;)

Thanks again for your reply, I'll tackle this when I feel more comfortable with C++! Very much appreciated! :)
 
Last edited: