Do I have to use Visual C++? - Windows Mobile Development and Hacking General

Hi there,
I'd like to do some Windows Mobile development but, quite frankly, I do not have the time or energy to learn Visual C++.
I'm good with Perl, PHP and Visual Basic and au fait with Windows Mobile - so the concepts of development on this platform aren't an issue. It's just simply a case of learning C++ does not fill me with any kind of excitement.
I looked at eVB, but its ancient and lacking in many respects. I thought about Visual Basic .NET but there appears to be no documentation around - you can't even buy a book on Windows Mobile development with it.
Any suggestions on something I can use which doesn't have a steep learning curve and allows me to get on writing useful things without spending the next 2 years learning dull stuff?
Thanks.

any of the c languages would be the best as they are native to winmo. you can use vb.net and it will work just fine. i have developed a few simple apps with vb.net and am working on one now i hope to release on here when i am finished. i am in the process of furthering my knowledge of vb.net and also learning asp.net, ado.net and c++ so i am very busy with programming. i would recommend learning one of the c languages if you really want to get in depth with winmo programming but like i said vb.net will work just wont be the best.
ps if you are comfortable with vb.net learning c++ should not be that difficult for you.

When you're using .net it doesn't matter if you use vb.net, visual c++ or any other .net language because eventually you'll end op with MSIL (Microsoft Intermediate Language). All .net languages are equally fast (except vb.net when you use the old visual basic namespace, so don't use it!)

"Visual Basic .NET"
.net compact framework is pretty well documented
come to think of it all msdn's examples are first vb.net
then c#.net and then c++.net and maybe j# or jscript.net
so plenty of documentation in that department
c# is not that hard if you know java it's much of the same
but if what you wanna do is pretty "basic" then mortscripts goes along way

Related

Software Development

Can I develop software to WM5 but no .Net frameworks ?
Of course!
In fact it is much better to use native code on WM devices because it is faster and takes up less resources.
If you already know C / C++ go to MS site and download the free eMbedded C++ 4 and the Pocket PC 2003 SDK (don't mind the OS version).
Also if you have VS 2005 download the WM 5 SDK and create a smart device project in C++.
1 cool think about .net though is i had a sudoko or whatever it's called
program for pda and the same exe workd on pc too
but all in all .net is a slow as java though on pocketpc the .net maybe better implemented then the java vm's
levenum said:
Of course!
In fact it is much better to use native code on WM devices because it is faster and takes up less resources.
If you already know C / C++ go to MS site and download the free eMbedded C++ 4 and the Pocket PC 2003 SDK (don't mind the OS version).
Also if you have VS 2005 download the WM 5 SDK and create a smart device project in C++.
Click to expand...
Click to collapse
hi levenum,
i have VS 2005 and WM 5 sdk installed.
well my problem is C++ which i never read seriously but i have a good
working base of C on which i had developed two simple game.
How can i implement the code in VS2005/WM5SDK with minimal
interaction of C++ ?
How can i get working base on VS2005/WM5SDK?
Can u suggest me a tutorial or any free book?
with c vs. c++ it's really much the same ++ is just an expansion with nativ class and other object orientented features
any c program should be able to compile using a c++ compiler
but i doubt you can write CE programs or even windows programs without using any kind of class related code
heck you cant even do that in basic (evil language) or c#
the internet is soo full of free programming stuff it's not even funny
buying paper books is a thing of the past imho unless you want to read while on the toilet and dont have a laptop or pda
http://www.brpreiss.com/books/opus6/
good googling for more
Actually, except for M$ nasty invention called "COM" there is nothing in Windows API that requires C++.
In fact I rarely use classes unless I am building an MFC app to save time.
Also, (can't remember the link for the life of me) but there is some way of accessing class objects in pure C using some struct tricks.
So basically you can leave fine without the ++, but you may need to work a little harder.
You should just create a basic smart device project. VS will generate a "hello world" app for you and you can see how it works. Moving from C to C++ should be very easy.
It's C# that is no longer a real programming language
P.S.: Did you know most of Win CE DLL are actually written with ANSI C?
levenum said:
Actually, except for M$ nasty invention called "COM" there is nothing in Windows API that requires C++.
In fact I rarely use classes unless I am building an MFC app to save time.
Also, (can't remember the link for the life of me) but there is some way of accessing class objects in pure C using some struct tricks.
So basically you can leave fine without the ++, but you may need to work a little harder.
You should just create a basic smart device project. VS will generate a "hello world" app for you and you can see how it works. Moving from C to C++ should be very easy.
It's C# that is no longer a real programming language
P.S.: Did you know most of Win CE DLL are actually written with ANSI C?
Click to expand...
Click to collapse
thanx,
i had already compleated "hello world"
and C++ is really not much away from me
actually i only have a single problem:
How can i get working base on VS2005/WM5SDK?
Click to expand...
Click to collapse
well i think it is more exactly Win CE API knowledge which i require.
How Do I Start Cooking Roms
I Know A Bit Of C++ ,how Do I Start Cooking My Own Roms
tawanda: first off - your question has nothing to do with this thread, if you have an unrelated question you should start a new thread BUT search first to make sure it was not asked and answered a 1000 times!
As for your question - cooking ROMs is not programming - it helps to know a programming language but what you really need to do is familiarize your self with the tools used to pack and unpack as well as dump and flash ROM images.
Note that these tools are different for different devices or at the very least need to be configured differently.
I recommend you start by reading the WiKi.
After some years of absence from the programming world I think now I've time enough to start again. I'm familiar (but a bit rusty) with assembler, C and C++, but I think I have start more or less from the beginning.
I already installed Visual Studio 2005 and the WM05 and WM06 SDK. Now I'm not sure whether I should use C# or C++. The big difference is that C# needs compact framework?
Your question is mainly a matter of personal preference.
Here is my opinion on C++ vs. C#:
C++ advantages:
- Native code is faster than .NET
- Easier access to Win32 APIs
- Ability to write system components like keyboards and today plugins.
C# advantages:
- Saves on coding time
- Allows use of many .NET CF components to quickly accomplish complex tasks.
Please note that I am bias. I hate .NET and want nothing to o with it. Specially on mobile devices that do not have the processing power to spare for the .NET overhead.
I second levenum's recommendations -- I've been programming big Windows for 15 years and have managed to avoid .NET. Of course most of what I do these days is NDIS driver programming, so it's mostly straight C, with C++ for supporting user-mode code.
Avoid MFC -- it adds a bit of overhead which is OK for big Windows, but not for WM. If you're going to use a C++ framework, I highly recommend using ATL/WTL -- it's what MFC wants to be when it grows up.
I'm looking at my visual studio 2005 and wanting to covert my c# application to C++...
I clicked on a new project and i'm looking at the various options in Visual C++ for Smart Devices. There are a few to choose from... how do I know which one I want to choose?
ATL Smart Device Project
MFC Smart Device Application
Win32 Smart Device Project
MFC Smart Device ActiveX Control
MFC Smart Device DLL
Can you guys tell me the difference between those options and which I should use to develop for WM6?
Thanks,
Derek
imho then a good pro of c# vs. c++ is the nice object lib that .net give
mfc is pretty crap in every respect and if you do pure stk
it's more work to make it object orientated
"ATL Smart Device Project
MFC Smart Device Application
Win32 Smart Device Project
MFC Smart Device ActiveX Control
MFC Smart Device DLL"
depend on what you want to do
i mean DLL is not a program but a lib that other programs can access
but then today items are dlls
win32 is pure win32 stk where you pretty much have to do all the prev work to get your application up and running
mfc is microsoft foundation clases it's an somewhat dated object lib from ms which makes making an application faster it pretty much give you a dialog and let you place components such as button on it
ActiveX is an somewhat evil internet programming platform
atl http://en.wikipedia.org/wiki/Active_Template_Library
you can prob find more info about everything you want more info about
from wikipedia too
thanks for the info rudegar!

Windows Mobile Programming

Hi,
I hope this question is not too lame to all of you experience developers.
I would like to start developing Windows Mobile app. Could you please inform a little bit about what would be the good programming language and tools that I should learn?
I have browsed quite a while, and found several alternatives, like C++ or .Net compact framework. but i confuse which one woulb be the best all around, easy and have future prospect/support.
My goal is to create open sourced On Screen keyboard app.
I am no stranger in Windows programming. I code in Borland Delphi and a little bit VC++.
But I know almost none about Windows Mobile. Well, I tried Java J2ME, but does not like much.
Please if you can advice, or maybe inform about good books or articles, so I can start
getting dirty (coding).
Thanks.
.net is easy to start with but a bit slow
and have limitations
microMFC is ok speedwise with c++ but in general af dated object lib
pure win32 stk is the fastest way and give the most options but like with pure win32 for windows it's take some exp to get good at and you dont just throw together a prototype in a few mins
vb not .net is a horror and should be avoided at all costs
vb .net is pretty much just c# with an ugly syntax
other "high" language's are not likely to be as powerfull and prob got narrow developer numbers and could go away as fast as they came about
think borland even have some developing envioment for wm not sure if it use delphi though

Language being used for applications

I've been developing enterprise applications for over a decade now, but PPC Development is totally new for me. I'm curious to know what language most PPC developers use to build their applications? Is it common to develop using Mobile .NET or are most of the applications developed in C++?
I really want to get involved, as there are applications I would like to write, but I'm struggling to find a starting point.
I want to develop a finger friendly application like the SPB Mobile Shell, and I assume I will have to use C++ and animations to ge the desired functionality? Any help is greatly appreciated.
The simplest way to start is using the .NET platform.
Its main languages are Visual C# and Visual Basic.
The main advantage is that those two languages are simple (the C# is close to the Java language) and secure in terms of memory management, but they also are slow, because the compiler creates managed code, just like the java compiler does.
I've tried to do some small apps using C#, and it's really entertaining and "simple". The problem is that you need the Microsoft Visual Studio IDE, which is not free, unless you use a free version, the Visual Studio Express IDE, but I'm not quite sure that it works to dev on a PPC.
As far as I know, there is a way to do unmanaged code, using C++ I guess, which is much faster. I don't know how to program in C++ for a PPC, and I'm also interested, as the few apps that I made in C# were really slow.
Good luck !
ErGo_404 said:
The simplest way to start is using the .NET platform.
Its main languages are Visual C# and Visual Basic.
The main advantage is that those two languages are simple (the C# is close to the Java language) and secure in terms of memory management, but they also are slow, because the compiler creates managed code, just like the java compiler does.
I've tried to do some small apps using C#, and it's really entertaining and "simple". The problem is that you need the Microsoft Visual Studio IDE, which is not free, unless you use a free version, the Visual Studio Express IDE, but I'm not quite sure that it works to dev on a PPC.
As far as I know, there is a way to do unmanaged code, using C++ I guess, which is much faster. I don't know how to program in C++ for a PPC, and I'm also interested, as the few apps that I made in C# were really slow.
Good luck !
Click to expand...
Click to collapse
I'm guessing that applications like SPB Mobile Shell is developed in C++. I just don't see how it could be .NET code. I was sort of hoping, considering this is a developers forum, that there would be a better response to this thread; however the overwhelming feeling I get is that the 'new' people aren't cool enough to share information with.
devikta said:
I'm guessing that applications like SPB Mobile Shell is developed in C++. I just don't see how it could be .NET code. I was sort of hoping, considering this is a developers forum, that there would be a better response to this thread; however the overwhelming feeling I get is that the 'new' people aren't cool enough to share information with.
Click to expand...
Click to collapse
I feel your pain but best suggestion I can give to you is there is icontact app for which author have released source code (Thank you very much for that) . Look at the code and try to understand and see where you can get with it.
I started using visual studio IDE but I was running in to issue with the IDE itself, good luck to you.

[DEV] Which language to take?

hi!
next time i wanna try developing diamond apps on my own.
a few years ago, i developed software for pocket pcs using eVC++ 3.0. so you can see i'm used to programming and c++. i also wrote some java-stuff for symbian mobiles, means i do know java too.
in this forum, i saw quite a lot of code-snippets using c#. it looks similar to java, from what i can tell by now. i'm very curious about learning that language in order to write my own diamond applications. so here are my question to the developers:
- are there any limitations to c#? on a pocketpc, you could nearly do everything with c++ and the win api. but java was very limited.
- can i use native api functions?
- which language is the most used one, when it comes to winmobile developing?
- c# is microsoft, right? does it make sense, to learn "a ms specific" language, instead of reactivating and strengthening knowledge in c++ and/or java?
thanks a lot for your advice!
yours, hebbe
pleeeeeeasseeee

Which language to take?

hi!
next time i wanna try developing diamond apps on my own.
a few years ago, i developed software for pocket pcs using eVC++ 3.0. so you can see i'm used to programming and c++. i also wrote some java-stuff for symbian mobiles, means i do know java too.
in this forum, i saw quite a lot of code-snippets using c#. it looks similar to java and c++, from what i can tell by now. i'm very curious about learning that language in order to write my own diamond applications. so here are my question to the developers:
- are there any limitations to c#? on a pocketpc, you could nearly do everything with c++ and the win api. but java was very limited.
- can i use native api functions?
- which language is the most used one, when it comes to winmobile developing?
- c# is microsoft, right? does it make sense, to learn "a ms specific" language, instead of reactivating and strengthening knowledge in c++ and/or java?
thanks a lot for your advice!
yours, hebbe
I don't know so much about developing....... but some friends of mine develop app for WM and use VisualStudio 2008....... In this package you can find some compilers and I think Visual C++ is the best tool for writing apps....... But I'm telling you.... I'm not a developer, I only give you some information about what I found out listening some friends.
Now it's up to you........ Have a good luck!!!
To answer your questions:
C# does have a lot of limitation on WinMo platform. There's a lot of functionality that is missing from managed .NET libraries on WinMo. There are additional libraries that you can use to gain some of that functionality back, like OpenCFNET.
You can use native api, but you have to create COM Interop wrappers to call them.
C++ is still the language of choice for WinMo development.
C# is part of Microsoft .NET framework. The reason you see a lot of people use it, even with all of the limitations in WinMo environment is that it's a very popular language that can be used for any aspect of development (i.e. windows forms, web, devices, etc.). C# is also kindda not "ms specific" language, since there's a Mono framework, that allows you to use C# and .NET on almost any platform, including Linuxs and Macs.
this isn't the place to ask questions, there is a Q&A section for that.
thank you

Resources