Where to start - Windows Mobile Development and Hacking General

Any chance someone can give me some information on how to get started. I'd like to start looking at developing software for the XDA II but don't know where to start.
Rob

Microsoft site:
http://www.microsoft.com/windowsmobile/resources/downloads/developer/default.mspx

Thanks alot, is there any real programming knowledge required or is it pretty intuitive?
Any help is much appreciated
Rob

Downloaded the eVC++ 4.0 and it's asking for serial details but I didn't see a Buy Now or anything. Do I have to register, is this free or do I have to pay?
Rob

Check out those valuable resources..
Pocket PC Developer Network:
http://www.pocketpcdn.com/
Windows Mobile Bloggers:
http://winmoblogs.net/
TinyGL:
http://www.opentribe.org/PocketTribe/TinyGL.html

for eVC++ 4.0, use this serial:
TRT7H-KD36T-FRH8D-6QH8P-VFJHQ
its FREE, but needs a serial :wink:

thanks alot, is there any real programming knowledge required or is it pretty intuitive?
Click to expand...
Click to collapse
if you never programmed before then vc++ will have a steeper learning curve then vb
but imho then programming is never truly intuitive

I've done web design and VB programming before and found both to be easier when using a little common sense
Thanks alot for all your help, keep anything coming that you think will be useful, it's much appreciated
Rob

visual studio can make vb applications for pocketpc i seem to recall
it cant make c++ or c# applications for pocketpc not sure why
if you want to make thos you need embedded vc++

All,
I've heard a few people around here saying that they develop in raw C so the don't have the MFC stuff to worry about. Can anyone tell me what compiler they used to compile raw C to work on Pocket PC or does eVC4 do it

http://mifki.ru/pocketgcc/down.html
gcc for pocketpc it's not raw c but i suppose you could call it raw c++
you also got the option of programming using .net from c# and c++ and vb if you dont like mfc (which many people dont)

True, but going down the .net route means forking out more money than I care to for a hobby.

Related

Reading the registry with Visual Studio 2003

I'm developing a small application for my HTC Wizard, which I'm programming with Visual Studio 2003.
I need to open the shell application for M3U files, which I've tracked down to HKCR\M3UFile\Shell\Open\Command... but now I can't figure out how to either read that key to open the relevant player, or to execute the m3u file directly.
Because I'm using VS2003, I don't have access to system.win32 with the compact framework, so what techniques have others of you used to read or write to the registry?
Also, just as a side note, how do you find the current path?
Thanks,
Jon
There is no real concept of current path in CE. If you want to know the path your EXE is in, use GetModuleHandle(NULL) -- it'll return the fully-qualified path name of that process's EXE, from which you can parse out a path.
I'd advise against using the compact framework; .Net is a loser on PPCs as it just slows things down, taking up extra memory & cycles on a platform where both are in short supply. Use the real Windows APIs instead -- i.e. call RegCreateKeyEx/RegSetValueEx.
And if you choose to use Win32 API you can just call ShellExecuteEx()
and not mess with the registry.
RegQueryValueEx is what you need. Just set the appropriate type and buffer.
V
I'm always willing to learn new stuff... are there any good resources on programming for PPC without using .net?
I know there's EVC++, but I've installed it, and now I don't know what to do with it!
Regards,
Jon
JonTheNiceGuy said:
I'm always willing to learn new stuff... are there any good resources on programming for PPC without using .net?
I know there's EVC++, but I've installed it, and now I don't know what to do with it!
Regards,
Jon
Click to expand...
Click to collapse
You can either use EVC++4, which is free but has an aged, not-so-standard C++ compiler (since it based on VC++6...but it only means a few quirks), or you can use Visual Studio 2005 which is supposed to replace EVC.
Jon, not to state the obvious, but there are many c++ tutorials for the PPC on the interweb.
What kind of experience do you have?
V
I have no prior experience with C++ - I bought the C++ For Dummies book in a charity shop a month or so ago, but it seems to refer to software that isn't available any more!
My core experience is with PHP, and recently I've been more interested in VB.NET for small apps at work, but most of what I want to do is with Windows Mobile - for which, all I have is Visual Studio 2003, and my co. won't fund me buying VS2005 as I got it for an old project that I still maintain, and anything new I need to write for work I can do with VS2005 Express...
That said, I'm not afraid of learning a new language, especially something as powerful as C++.
C++ for dummies is excellent, the best I've come across so far.
Have a read through this:
http://forum.xda-developers.com/viewtopic.php?p=209136#209136
I'm currently unlearning and then relearning my c++ - one thing I've learnt coming from other languages - c++ requires discipline. It's not about shortcuts, you build up from the basics and keep going steadily. But you need to be logical, and prepared to put in the effort. So discipline - it's been a long time since I've had to think about that!
V

Developing Software getting started

I looking for advice on getting started developing simple programs for WM5 - I guess I'm not really bothered if they don'y make use of the advanced features
The options appear to be
#1 MS Visual Studio 2005 (90-trial or $$$)+ WM5 SDK (free)
#2 MS Embedded Visual C++ 4.0 SP4 (free) + WM2003 SDK (free)
#3 MS Embedded Visual C++ 3.0 - 2002 edition - PPC2002+SP2002 SDK included (free). Also include Embedded Visual Basic.
As my recent experience is VB I guess option 3 is best C++ learning curve might be a bit steep given the just for fun motivation
but ..... there are other options saw this today
PPL - Pocket Programming Language
Write software for your PocketPC and PC in minutes using our new programming language. PPL is a fast and easy-to-learn programming language that is fully object-oriented. PPL runs on all Pocket PC using PocketPC 2000, 2002, Windows Mobile 2003, 2003SE, and 2005 (VGA compatible). PPL also runs on Windows 2000, XP, 2003 Server desktop computers. Programs written for one system are 100% compatible with the other.
Write high quality games in no time using our easy-to-use GameAPI that incorporates physics, isometric display support, pixel-perfect collision detection and so much more...
Design forms visually on your PDA or desktop computer with the visual form builder. Edit components properties and code events within the same interface. PPL is a complete development environment.
Starting as low as $39.95 USD for a limited time.PPL - Pocket Programming Language
Write software for your PocketPC and PC in minutes using our new programming language. PPL is a fast and easy-to-learn programming language that is fully object-oriented. PPL runs on all Pocket PC using PocketPC 2000, 2002, Windows Mobile 2003, 2003SE, and 2005 (VGA compatible). PPL also runs on Windows 2000, XP, 2003 Server desktop computers. Programs written for one system are 100% compatible with the other.
Write high quality games in no time using our easy-to-use GameAPI that incorporates physics, isometric display support, pixel-perfect collision detection and so much more...
Design forms visually on your PDA or desktop computer with the visual form builder. Edit components properties and code events within the same interface. PPL is a complete development environment.
Starting as low as $39.95 USD for a limited time.
http://www.pocketpcthoughts.com/forums/viewtopic.php?t=52935&highlight=
there must be other options?
I guess SharpDevelop 2.1
develop is an Open Source IDE written in c# and running on the Microsoft .NET platform.
http://wiki.sharpdevelop.net/default.aspx/SharpDevelop.CompactFramework2Development
Opinions welcomed
The old VB for CE (and eVB) were rubbish. Unless it changed in much later versions these were just VBscript, not actually VB. Very limited functionality indeed.
All the C++ versions work OK (and I still use eVC++ 4 sometimes) , but of course C++ is a fairly fiddly, low-productivity language. It's not really the ideal language for having a play.
So, sorry to say, of the Microsoft ones VS2003/VS2005 using VB.net or c#.net are by far the easiest, and most productive of other offerings.
Never tried the non-MS ones.
Stuart
The real trouble with embedded VB is the runtime library it requires which will not run on WM 5 (it barely works on WM 2003).
I remember seeing a cheap and according to the manufacturer powerful VB compiler in some post on the forum, but for the life of me can't remember the name. It compiles to native code and doesn't require a run time.
Now it's true that C++ takes more work to get things done, but it also gives you more power. Even if you just program for your self you may one day want to create your own today plugin or even keyboard and that can't be done in .NET
My recommendation: Spend a little time and learn MFC. It has a lot of similarities to the .NET languages and saves a lot of work for C++ programmers.
[OT] i've also just started "trying" to create applications using vb.net on VS5. Am i allowed to ask questions here? Or is there a thread for posting vb or c questions?
Never seen a specif thread for these, and I am here quite often for a long time.
If you have a specific question you can even open a new thread, no need to clatter several unrelated issues in to one giant thread just because there about same programing language.
Just do a quick search first to make sure it's not something that was asked a 100 times and away you go.
Thanks I guess that leaves me with
PPL - Pocket Programming Language and SharpDevelop 2.1c#
thanks levenum. i will be doing that
starfish_001 said:
Thanks I guess that leaves me with
PPL - Pocket Programming Language and SharpDevelop 2.1c#
Click to expand...
Click to collapse
I can highly recommend ppl, seeing as I just entered the games competition and had my entry done in just over twenty days, without any real windows based programming background.
it's relatively cheap, and the support is great, with questions on the forum getting a very fast turn around.
Here's another to look at Basic4ppc
http://www.basic4ppc.com/
Basic4ppc and ppl are both great little applications
what is MFC ?
levenum said:
My recommendation: Spend a little time and learn MFC. It has a lot of similarities to the .NET languages and saves a lot of work for C++ programmers.
Click to expand...
Click to collapse
trying ot choose on which programming language I will begin with and I was wondering what is MFC ?
Thank you
MFC == microsoft foundation Classes --- library
it's a library which encaption the gui and other general purpos functionalitet of windows in a set of classes that makes it
easier to get ones program up and running without having to
worry about WinMain and a messageLoop
http://en.wikipedia.org/wiki/Microsoft_Foundation_Classes
microsoft have long since abandoned mfc as their pref library
now they are pushing .NET
problem is that .net is slower more so on devices like pda's
MFC really means
Mother F*cking Crazy, which it will drive you! All joking aside it is probably the best thing to develop in. I've writen small apps with it on every CE since 2.11 and even on XPeMbedded (which I'd avoid like the black death).
I've had great success with C# on WM5 and Pocket PC before. Even wrote a handheld POS terminal. Microsoft is really behind .NET and it will be supported for a long time. It's very easy to learn and the documentation is great.
Visual Basic .NET will do the same job, but keep in mind the switch from VB6 to VB.NET is HUGE. Just because some of the code looks the same doesn't mean it is. I'd take the time and learn C#. If you're really serious register as Microsoft ISV (their program is Empower for ISVs). For $375 you get basically everything MS has written in the last 10 years. You get 5 development use copies of anything you want including Visual Studio 2005 Professional. All you have to do is create an app for a Microsoft system in 18 months.
PM me if you need any more details.
Thanks
starfish_001 said:
Thanks I guess that leaves me with
PPL - Pocket Programming Language and SharpDevelop 2.1c#
Click to expand...
Click to collapse
Thank u bro

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!

Programming the Hermes

Hi @ all...
i wanted to know if anyone is able to give ma an introduction into programming on mobile devices.
i've got the microsoft visual studio 2005 as a student version from my school, and found the mobile device template, but i wasn't able to figure some things out.
i will try much things by myself, but if anyone could give me an example on how to write a programm that accesses the phone line.
actually i want to write a program, that is able to place a call and send DTFM to the other side.
Is there a possibility to do this?
greetings
garfield
embedded visual c++ .. it is free and I'm using it .. look at what I've did all at my signature
What you are trying to do is not so simple. You need to read and learn about Telephony API (TAPI) which is a set of functions that lets you talk to the phone part of the device.
Also, you need to install the Window Mobile 5 and / or 2003 SDK which is available for free from MS.
Finally, you have not mentioned what programming languages you know.
There is probably simpler approach for .NET then TAPI, but .NET sucks.
hmm...
already heard about tapi... but i'm not really into c++ programming.
but this will be neccessary i think.
as i'm leraning c# at school for now, i will try it that way, and if you say, there might be an easier way with .net, i'll try this. both of the phones i want to program are wm6 so i don't have to worrie about the freaking big framework as it is incorporated into wm6...
i will take a look at it, now with having tapi in mind, MSDN might help me a little...
thanks for the help

Want to learn to program for Windows Mobile

Let's say I have lots of free time, am a pretty smart guy, and am infatuated with my Windows Mobile device. I am a veterinarian, and know next to nothing about programming, except how to meddle with other people's PHP or javascripts. I know HTML pretty well, and have some experience with basic Flash ActionScript. Can someone help me start learning how to program for Windows Mobile?
I need to know:
1) Some good beginner's books
2) Software to start off with (free stuff preferred)
3) Good websites to check out
Can you help?
I'm no programmer, but have wanted to dabble. From what I can tell, lots of folks use embedded visual c++ to program WM apps. This is a free compiler you can download from Microsoft (search for evc++), but there's not a lot of MSDN articles or MS help in general with evc++ because they want to move you to the .net compiler ($$$). Good luck.
I found this http://www.basic4ppc.com/but haven't tried it. It seems to be like Visual Basic, which is easy to learn. Maybe someone here tried it and can comment on it?
I tried installing Embedded Visual C++ on my Vista machine, but ran into all sorts of problems with it crashing while trying to compile "Hello World!" any ideas?
In the meantime, I've downloaded and am using Visual C++ 2008 Express edition (free). Will that allow me to compile for Windows Mobile (.arm)?
Evb and Evc are old languages,actually most of the programmers are using .Net languages.
You need to install IDE Visual Studio then make a choice of the language you will use..
But I am not a programmer,someone else can redirect you better.
Good luck!
unapproachable2kx said:
Evb and Evc are old languages,actually most of the programmers are using .Net languages.
You need to install IDE Visual Studio then make a choice of the language you will use..
But I am not a programmer,someone else can redirect you better.
Good luck!
Click to expand...
Click to collapse
EVB might be old, but EVC uses C/C++ in the exact same fashion you would use it in Visual Studio 2008. The key for me, is to really think about what you want to do, and what you want out of programming.
If you want to develop a little app that does some simple computation, or things less graphical, and you really don't have a passion for developing, then plunge into .NET. It's easy, it's effective and it'll get the job done.
On the other hand, if you're getting into multimedia, and your heart is in with software developing, then I must stress that the C/C++ route is REALLY where you should be going. I must warn you though, if you're new to programming, don't expect to have things fired up and running in 10 mins. It will take time .
Just my 2-Cents,
Chad.
http://msdn2.microsoft.com/en-us/windowsmobile/bb264341.aspx
heres some videos that will help u get started!
ekw said:
http://msdn2.microsoft.com/en-us/windowsmobile/bb264341.aspx
heres some videos that will help u get started!
Click to expand...
Click to collapse
thanks guyz..i was also looking for this ...

Categories

Resources